diff --git a/doc/build.jam b/doc/build.jam new file mode 100644 index 0000000..937bc2b --- /dev/null +++ b/doc/build.jam @@ -0,0 +1,53 @@ +# Copyright Redshift Software, Inc. 2011 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +using quickbook ; +import path ; + +if ! $(BOOST_ROOT) +{ + BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ; +} + +if $(BOOST_PREDEF_ROOT) +{ + path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ; +} +else +{ + path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ; +} + +local BOOST_PREDEF_HEADERS = [ path.glob-tree $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef : *.h ] ; + +xml predef + : + predef.qbk + : + $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h + $(BOOST_PREDEF_HEADERS) + ; +explicit predef ; + +boostbook standalone + : + predef + : + boost.root=../../.. + #generate.section.toc.level=3 + chunk.section.depth=2 + chunk.first.sections=1 + + images + callouts + css + ; + +install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : html/images ; +explicit images ; +install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : html/images/callouts ; +explicit callouts ; +install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : html ; +explicit css ; diff --git a/doc/html/boostbook.css b/doc/html/boostbook.css new file mode 100644 index 0000000..2e15c01 --- /dev/null +++ b/doc/html/boostbook.css @@ -0,0 +1,646 @@ +/*============================================================================= + Copyright (c) 2004 Joel de Guzman + http://spirit.sourceforge.net/ + + Distributed under the Boost Software License, Version 1.0. (See accompany- + ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ + +/*============================================================================= + Body defaults +=============================================================================*/ + + body + { + margin: 1em; + font-family: sans-serif; + } + +/*============================================================================= + Paragraphs +=============================================================================*/ + + p + { + text-align: left; + font-size: 10pt; + line-height: 1.15; + } + +/*============================================================================= + Program listings +=============================================================================*/ + + /* Code on paragraphs */ + p tt.computeroutput + { + font-size: 9pt; + } + + pre.synopsis + { + font-size: 9pt; + margin: 1pc 4% 0pc 4%; + padding: 0.5pc 0.5pc 0.5pc 0.5pc; + } + + .programlisting, + .screen + { + font-size: 9pt; + display: block; + margin: 1pc 4% 0pc 4%; + padding: 0.5pc 0.5pc 0.5pc 0.5pc; + } + + /* Program listings in tables don't get borders */ + td .programlisting, + td .screen + { + margin: 0pc 0pc 0pc 0pc; + padding: 0pc 0pc 0pc 0pc; + } + +/*============================================================================= + Headings +=============================================================================*/ + + h1, h2, h3, h4, h5, h6 + { + text-align: left; + margin: 1em 0em 0.5em 0em; + font-weight: bold; + } + + h1 { font-size: 140%; } + h2 { font-weight: bold; font-size: 140%; } + h3 { font-weight: bold; font-size: 130%; } + h4 { font-weight: bold; font-size: 120%; } + h5 { font-weight: normal; font-style: italic; font-size: 110%; } + h6 { font-weight: normal; font-style: italic; font-size: 100%; } + + /* Top page titles */ + title, + h1.title, + h2.title + h3.title, + h4.title, + h5.title, + h6.title, + .refentrytitle + { + font-weight: bold; + margin-bottom: 1pc; + } + + h1.title { font-size: 140% } + h2.title { font-size: 140% } + h3.title { font-size: 130% } + h4.title { font-size: 120% } + h5.title { font-size: 110% } + h6.title { font-size: 100% } + + .section h1 + { + margin: 0em 0em 0.5em 0em; + font-size: 140%; + } + + .section h2 { font-size: 140% } + .section h3 { font-size: 130% } + .section h4 { font-size: 120% } + .section h5 { font-size: 110% } + .section h6 { font-size: 100% } + + /* Code on titles */ + h1 tt.computeroutput { font-size: 140% } + h2 tt.computeroutput { font-size: 140% } + h3 tt.computeroutput { font-size: 130% } + h4 tt.computeroutput { font-size: 130% } + h5 tt.computeroutput { font-size: 130% } + h6 tt.computeroutput { font-size: 130% } + + +/*============================================================================= + Author +=============================================================================*/ + + h3.author + { + font-size: 100% + } + +/*============================================================================= + Lists +=============================================================================*/ + + li + { + font-size: 10pt; + line-height: 1.3; + } + + /* Unordered lists */ + ul + { + text-align: left; + } + + /* Ordered lists */ + ol + { + text-align: left; + } + +/*============================================================================= + Links +=============================================================================*/ + + a + { + text-decoration: none; /* no underline */ + } + + a:hover + { + text-decoration: underline; + } + +/*============================================================================= + Spirit style navigation +=============================================================================*/ + + .spirit-nav + { + text-align: right; + } + + .spirit-nav a + { + color: white; + padding-left: 0.5em; + } + + .spirit-nav img + { + border-width: 0px; + } + +/*============================================================================= + Copyright footer +=============================================================================*/ + .copyright-footer + { + text-align: right; + font-size: 70%; + } + + .copyright-footer p + { + text-align: right; + font-size: 80%; + } + +/*============================================================================= + Table of contents +=============================================================================*/ + + div.toc + { + margin: 1pc 4% 0pc 4%; + padding: 0.1pc 1pc 0.1pc 1pc; + font-size: 80%; + line-height: 1.15; + } + + .boost-toc + { + float: right; + padding: 0.5pc; + } + + /* Code on toc */ + .toc .computeroutput { font-size: 120% } + + /* No margin on nested menus */ + + .toc dl dl { margin: 0; } + +/*============================================================================= + Tables +=============================================================================*/ + + .table-title, + div.table p.title + { + margin-left: 4%; + padding-right: 0.5em; + padding-left: 0.5em; + } + + .informaltable table, + .table table + { + width: 92%; + margin-left: 4%; + margin-right: 4%; + } + + div.informaltable table, + div.table table + { + padding: 4px; + } + + /* Table Cells */ + div.informaltable table tr td, + div.table table tr td + { + padding: 0.5em; + text-align: left; + font-size: 9pt; + } + + div.informaltable table tr th, + div.table table tr th + { + padding: 0.5em 0.5em 0.5em 0.5em; + border: 1pt solid white; + font-size: 80%; + } + + table.simplelist + { + width: auto !important; + margin: 0em !important; + padding: 0em !important; + border: none !important; + } + table.simplelist td + { + margin: 0em !important; + padding: 0em !important; + text-align: left !important; + font-size: 9pt !important; + border: none !important; + } + +/*============================================================================= + Blurbs +=============================================================================*/ + + div.note, + div.tip, + div.important, + div.caution, + div.warning, + p.blurb + { + font-size: 9pt; /* A little bit smaller than the main text */ + line-height: 1.2; + display: block; + margin: 1pc 4% 0pc 4%; + padding: 0.5pc 0.5pc 0.5pc 0.5pc; + } + + p.blurb img + { + padding: 1pt; + } + +/*============================================================================= + Variable Lists +=============================================================================*/ + + div.variablelist + { + margin: 1em 0; + } + + /* Make the terms in definition lists bold */ + div.variablelist dl dt, + span.term + { + font-weight: bold; + font-size: 10pt; + } + + div.variablelist table tbody tr td + { + text-align: left; + vertical-align: top; + padding: 0em 2em 0em 0em; + font-size: 10pt; + margin: 0em 0em 0.5em 0em; + line-height: 1; + } + + div.variablelist dl dt + { + margin-bottom: 0.2em; + } + + div.variablelist dl dd + { + margin: 0em 0em 0.5em 2em; + font-size: 10pt; + } + + div.variablelist table tbody tr td p, + div.variablelist dl dd p + { + margin: 0em 0em 0.5em 0em; + line-height: 1; + } + +/*============================================================================= + Misc +=============================================================================*/ + + /* Title of books and articles in bibliographies */ + span.title + { + font-style: italic; + } + + span.underline + { + text-decoration: underline; + } + + span.strikethrough + { + text-decoration: line-through; + } + + /* Copyright, Legal Notice */ + div div.legalnotice p + { + text-align: left + } + +/*============================================================================= + Colors +=============================================================================*/ + + @media screen + { + body { + background-color: #FFFFFF; + color: #000000; + } + + /* Syntax Highlighting */ + .keyword { color: #0000AA; } + .identifier { color: #000000; } + .special { color: #707070; } + .preprocessor { color: #402080; } + .char { color: teal; } + .comment { color: #800000; } + .string { color: teal; } + .number { color: teal; } + .white_bkd { background-color: #FFFFFF; } + .dk_grey_bkd { background-color: #999999; } + + /* Links */ + a, a .keyword, a .identifier, a .special, a .preprocessor + a .char, a .comment, a .string, a .number + { + color: #005a9c; + } + + a:visited, a:visited .keyword, a:visited .identifier, + a:visited .special, a:visited .preprocessor a:visited .char, + a:visited .comment, a:visited .string, a:visited .number + { + color: #9c5a9c; + } + + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, + h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, + h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited + { + text-decoration: none; /* no underline */ + color: #000000; + } + + /* Copyright, Legal Notice */ + .copyright + { + color: #666666; + font-size: small; + } + + div div.legalnotice p + { + color: #666666; + } + + /* Program listing */ + pre.synopsis + { + border: 1px solid #DCDCDC; + } + + .programlisting, + .screen + { + border: 1px solid #DCDCDC; + } + + td .programlisting, + td .screen + { + border: 0px solid #DCDCDC; + } + + /* Blurbs */ + div.note, + div.tip, + div.important, + div.caution, + div.warning, + p.blurb + { + border: 1px solid #DCDCDC; + } + + /* Table of contents */ + div.toc + { + border: 1px solid #DCDCDC; + } + + /* Tables */ + div.informaltable table tr td, + div.table table tr td + { + border: 1px solid #DCDCDC; + } + + div.informaltable table tr th, + div.table table tr th + { + background-color: #F0F0F0; + border: 1px solid #DCDCDC; + } + + .copyright-footer + { + color: #8F8F8F; + } + + /* Misc */ + span.highlight + { + color: #00A000; + } + } + + @media print + { + /* Links */ + a + { + color: black; + } + + a:visited + { + color: black; + } + + .spirit-nav + { + display: none; + } + + /* Program listing */ + pre.synopsis + { + border: 1px solid gray; + } + + .programlisting, + .screen + { + border: 1px solid gray; + } + + td .programlisting, + td .screen + { + border: 0px solid #DCDCDC; + } + + /* Table of contents */ + div.toc + { + border: 1px solid gray; + } + + .informaltable table, + .table table + { + border: 1px solid gray; + border-collapse: collapse; + } + + /* Tables */ + div.informaltable table tr td, + div.table table tr td + { + border: 1px solid gray; + } + + div.informaltable table tr th, + div.table table tr th + { + border: 1px solid gray; + } + + table.simplelist tr td + { + border: none !important; + } + + /* Misc */ + span.highlight + { + font-weight: bold; + } + } + +/*============================================================================= + Images +=============================================================================*/ + + span.inlinemediaobject img + { + vertical-align: middle; + } + +/*============================================================================== + Super and Subscript: style so that line spacing isn't effected, see + http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341 +==============================================================================*/ + +sup, +sub { + height: 0; + line-height: 1; + vertical-align: baseline; + position: relative; + +} + +/* For internet explorer: */ + +* html sup, +* html sub { + vertical-align: bottom; +} + +sup { + bottom: 1ex; +} + +sub { + top: .5ex; +} + +/*============================================================================== + Indexes: pretty much the same as the TOC. +==============================================================================*/ + + .index + { + font-size: 80%; + padding-top: 0px; + padding-bottom: 0px; + margin-top: 0px; + margin-bottom: 0px; + margin-left: 0px; + } + + .index ul + { + padding-left: 3em; + } + + .index p + { + padding: 2px; + margin: 2px; + } + + .index-entry-level-0 + { + font-weight: bold; + } + + .index em + { + font-weight: bold; + } + diff --git a/doc/html/docutils.css b/doc/html/docutils.css new file mode 100644 index 0000000..4aa2e21 --- /dev/null +++ b/doc/html/docutils.css @@ -0,0 +1,275 @@ +/* +:Author: David Goodger +:Contact: goodger@python.org +:Date: $Date: 2007-04-16 23:44:59 -0500 (Mon, 16 Apr 2007) $ +:Revision: $Revision: 37457 $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin-left: 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left { + clear: left } + +img.align-right { + clear: right } + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font-family: serif ; + font-size: 100% } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none } diff --git a/doc/html/images/alert.png b/doc/html/images/alert.png new file mode 100644 index 0000000..b4645bc Binary files /dev/null and b/doc/html/images/alert.png differ diff --git a/doc/html/images/blank.png b/doc/html/images/blank.png new file mode 100644 index 0000000..764bf4f Binary files /dev/null and b/doc/html/images/blank.png differ diff --git a/doc/html/images/callouts/1.png b/doc/html/images/callouts/1.png new file mode 100644 index 0000000..6003ad3 Binary files /dev/null and b/doc/html/images/callouts/1.png differ diff --git a/doc/html/images/callouts/10.png b/doc/html/images/callouts/10.png new file mode 100644 index 0000000..0426f51 Binary files /dev/null and b/doc/html/images/callouts/10.png differ diff --git a/doc/html/images/callouts/11.png b/doc/html/images/callouts/11.png new file mode 100644 index 0000000..821afc4 Binary files /dev/null and b/doc/html/images/callouts/11.png differ diff --git a/doc/html/images/callouts/12.png b/doc/html/images/callouts/12.png new file mode 100644 index 0000000..7cec727 Binary files /dev/null and b/doc/html/images/callouts/12.png differ diff --git a/doc/html/images/callouts/13.png b/doc/html/images/callouts/13.png new file mode 100644 index 0000000..5b41e02 Binary files /dev/null and b/doc/html/images/callouts/13.png differ diff --git a/doc/html/images/callouts/14.png b/doc/html/images/callouts/14.png new file mode 100644 index 0000000..de5bdbd Binary files /dev/null and b/doc/html/images/callouts/14.png differ diff --git a/doc/html/images/callouts/15.png b/doc/html/images/callouts/15.png new file mode 100644 index 0000000..3fd6ac3 Binary files /dev/null and b/doc/html/images/callouts/15.png differ diff --git a/doc/html/images/callouts/2.png b/doc/html/images/callouts/2.png new file mode 100644 index 0000000..f7c1578 Binary files /dev/null and b/doc/html/images/callouts/2.png differ diff --git a/doc/html/images/callouts/3.png b/doc/html/images/callouts/3.png new file mode 100644 index 0000000..3ff0a93 Binary files /dev/null and b/doc/html/images/callouts/3.png differ diff --git a/doc/html/images/callouts/4.png b/doc/html/images/callouts/4.png new file mode 100644 index 0000000..6aa29fc Binary files /dev/null and b/doc/html/images/callouts/4.png differ diff --git a/doc/html/images/callouts/5.png b/doc/html/images/callouts/5.png new file mode 100644 index 0000000..36e7858 Binary files /dev/null and b/doc/html/images/callouts/5.png differ diff --git a/doc/html/images/callouts/6.png b/doc/html/images/callouts/6.png new file mode 100644 index 0000000..c943676 Binary files /dev/null and b/doc/html/images/callouts/6.png differ diff --git a/doc/html/images/callouts/7.png b/doc/html/images/callouts/7.png new file mode 100644 index 0000000..20940de Binary files /dev/null and b/doc/html/images/callouts/7.png differ diff --git a/doc/html/images/callouts/8.png b/doc/html/images/callouts/8.png new file mode 100644 index 0000000..d8e34d4 Binary files /dev/null and b/doc/html/images/callouts/8.png differ diff --git a/doc/html/images/callouts/9.png b/doc/html/images/callouts/9.png new file mode 100644 index 0000000..abe6360 Binary files /dev/null and b/doc/html/images/callouts/9.png differ diff --git a/doc/html/images/caution.png b/doc/html/images/caution.png new file mode 100644 index 0000000..5b7809c Binary files /dev/null and b/doc/html/images/caution.png differ diff --git a/doc/html/images/draft.png b/doc/html/images/draft.png new file mode 100644 index 0000000..0084708 Binary files /dev/null and b/doc/html/images/draft.png differ diff --git a/doc/html/images/home.png b/doc/html/images/home.png new file mode 100644 index 0000000..5584aac Binary files /dev/null and b/doc/html/images/home.png differ diff --git a/doc/html/images/important.png b/doc/html/images/important.png new file mode 100644 index 0000000..12c90f6 Binary files /dev/null and b/doc/html/images/important.png differ diff --git a/doc/html/images/next.png b/doc/html/images/next.png new file mode 100644 index 0000000..59800b4 Binary files /dev/null and b/doc/html/images/next.png differ diff --git a/doc/html/images/next_disabled.png b/doc/html/images/next_disabled.png new file mode 100644 index 0000000..10a8c59 Binary files /dev/null and b/doc/html/images/next_disabled.png differ diff --git a/doc/html/images/note.png b/doc/html/images/note.png new file mode 100644 index 0000000..d0c3c64 Binary files /dev/null and b/doc/html/images/note.png differ diff --git a/doc/html/images/prev.png b/doc/html/images/prev.png new file mode 100644 index 0000000..d88a40f Binary files /dev/null and b/doc/html/images/prev.png differ diff --git a/doc/html/images/prev_disabled.png b/doc/html/images/prev_disabled.png new file mode 100644 index 0000000..ab3c17e Binary files /dev/null and b/doc/html/images/prev_disabled.png differ diff --git a/doc/html/images/smiley.png b/doc/html/images/smiley.png new file mode 100644 index 0000000..30a77f7 Binary files /dev/null and b/doc/html/images/smiley.png differ diff --git a/doc/html/images/tip.png b/doc/html/images/tip.png new file mode 100644 index 0000000..5c4aab3 Binary files /dev/null and b/doc/html/images/tip.png differ diff --git a/doc/html/images/toc-blank.png b/doc/html/images/toc-blank.png new file mode 100644 index 0000000..6ffad17 Binary files /dev/null and b/doc/html/images/toc-blank.png differ diff --git a/doc/html/images/toc-minus.png b/doc/html/images/toc-minus.png new file mode 100644 index 0000000..abbb020 Binary files /dev/null and b/doc/html/images/toc-minus.png differ diff --git a/doc/html/images/toc-plus.png b/doc/html/images/toc-plus.png new file mode 100644 index 0000000..941312c Binary files /dev/null and b/doc/html/images/toc-plus.png differ diff --git a/doc/html/images/up.png b/doc/html/images/up.png new file mode 100644 index 0000000..17d9c3e Binary files /dev/null and b/doc/html/images/up.png differ diff --git a/doc/html/images/up_disabled.png b/doc/html/images/up_disabled.png new file mode 100644 index 0000000..e22bc87 Binary files /dev/null and b/doc/html/images/up_disabled.png differ diff --git a/doc/html/images/warning.png b/doc/html/images/warning.png new file mode 100644 index 0000000..1c33db8 Binary files /dev/null and b/doc/html/images/warning.png differ diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..4c1a70c --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,59 @@ + + + +Predef 1.0 + + + + + + +
Next
+
+
+
+

+Predef 1.0

+

+Rene Rivera +

+
+
+
+

+ Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +

+
+
+
+
+ +
+ + + +

Last revised: July 28, 2013 at 17:05:40 GMT

+
+
Next
+ + diff --git a/doc/html/minimal.css b/doc/html/minimal.css new file mode 100644 index 0000000..76d1031 --- /dev/null +++ b/doc/html/minimal.css @@ -0,0 +1,23 @@ +/* + + © Copyright Beman Dawes, 2007 + + Distributed under the Boost Software License, Version 1.0. + See www.boost.org/LICENSE_1_0.txt + +*/ + +body { + font-family: sans-serif; + margin: 1em; + max-width : 8.5in; + } + +table { margin: 0.5em; } + +pre { background-color:#D7EEFF } + +ins { background-color:#A0FFA0 } +del { background-color:#FFA0A0 } + +/*** end ***/ \ No newline at end of file diff --git a/doc/html/predef/acknoledgements.html b/doc/html/predef/acknoledgements.html new file mode 100644 index 0000000..7caa7b0 --- /dev/null +++ b/doc/html/predef/acknoledgements.html @@ -0,0 +1,49 @@ + + + +Acknoledgements + + + + + + + +
+PrevUpHome +
+
+ +

+ The comprehensiveness of this library would not be possible without the existance + of the indispensible resource that is the Pre-defined + C/C++ Compiler Macros Project. It was, and continues to be, the primary + source of the definitions that make up this library. Thanks to Bjorn Reese + and all the volunteers that make that resource possible. +

+

+ This library would be an incoherent mess if it weren't for Boost community + that provided invaluable feedback for the eight years that it took to polish + into a useable form. In particular I would like to thank: Mathias Gaunard, + Robert Stewart, Joël Lamotte, Lars Viklund, Nathan Ridge, Artyom Beilis, Joshua + Boyce, Gottlob Frege, Thomas Heller, Edward Diener, Dave Abrahams, Iain Denniston, + Dan Price, Ioannis Papadopoulos, and Robert Ramey. And thanks to Joel Falcou + for managing the review of this library. +

+
+ + + +
+
+
+PrevUpHome +
+ + diff --git a/doc/html/predef/adding_new_predefs.html b/doc/html/predef/adding_new_predefs.html new file mode 100644 index 0000000..eacc618 --- /dev/null +++ b/doc/html/predef/adding_new_predefs.html @@ -0,0 +1,206 @@ + + + +Adding new predefs + + + + + + + + +
+PrevUpHomeNext +
+
+ +

+ We know that a library like this one will be an eternal work-in-progress. And + as such we expect, and look forward to, others contributing corrections and + additions to the predefs. With that in mind we need to keep a consistent way + of defining the new predefs. Hence all current, and future, predefs follow + the same structure and requirements. +

+

+ + Requirements + of the header +

+

+ All predefs need to follow a set of requirements: +

+
    +
  • + The headers must use the Boost Software License. +
  • +
  • + The predef must, by default, be defined as BOOST_VERSION_NUMBER(0,0,0). +
  • +
  • + The predef must be redefined to a non-zero value once detected. +
  • +
  • + The predef must, by default, be defined to BOOST_VERSION_NUMBER(0,0,1) when the predef is detected. +
  • +
  • + If possible, the predef will be defined as the version number detected. +
  • +
  • + The predef must define *_AVAILABLE + macros. +
  • +
  • + The predef must define a symbolic constant string name macro. +
  • +
  • + The predef must declare itself, after being defined, for the testing system. +
  • +
+

+ And there are some extra guidelines that predef headers should follow: +

+
    +
  • + The detection should avoid including extra headers that might otherwise + not be included by default. +
  • +
  • + If the detection must include a header, prefer guarding it within the detection + if possible. +
  • +
  • + If the detection must include headers unconditionally, and has a choice + of headers to include, prefer the ones with the least impact. I.e. include + the one with the minimal set of definitions and other dependencies. +
  • +
+

+ + Structure + of the header +

+

+ For general consistency it's suggested that new predef headers follow the structure + below, as current predef headers do. First we have the copyright and license + statement, followed by the include guard: +

+
/*
+Copyright Jane Doe YYYY
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_category_tag_H
+#define BOOST_PREDEF_category_tag_H
+
+

+ Depending on how you are defining the predef you will at minimum have to include + the version_number.h header. But you might also want to include + the make.h header for the version number decomposing + utility macros: +

+
#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+

+ The Predef library uses Quickbook for documentation and for the individual + predefs to appear in the reference section we add in-code documentation followed + by the zero-value default definition of the predef macro. We strongly recommend + this particular placement of the documentation and default definition because + some development environments automatically interpret this and provide in-line + help for the macro. In particular this works for the popular Eclipse IDE: +

+
/*`
+[heading `BOOST_category_tag`]
+
+Documentation about what is detected.
+*/
+
+#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,0)
+
+

+ Next is the detection and definition of the particular predef. The structure + for this is to do a single overall check (condition_a) + and place further version detection inside this. The first action inside the + overall check is to "#undef + BOOST_category_tag" which undefines + the zero-value default. The rest is up to the you how to do the checks for + defining the version. But at minimum it must "#define + BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)" as the fallback to minimally indicate + that the predef was detected: +

+
#if (condition_a)
+#   undef BOOST_category_tag
+#   if (condition_b)
+#        define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
+#    else
+#        define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
+#    endif
+#endif
+
+

+ We also need to provide the *_AVAILABLE versions of the predef. And for + convenience we also want to provide a *_NAME macro: +

+
#if BOOST_category_tag
+#   define BOOST_category_tag_AVAILABLE
+#endif
+
+#define BOOST_catagory_tag_NAME "Name"
+
+

+ The testing of the predef macros is automated to generate checks for all the + defined predefs, whether detected or not. To do this we need to declare the + predef to the test system. This declaration is empty for regular use. And during + the test programs they expand out specially to create informational output: +

+
#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,BOOST_category_tag_NAME)
+
+

+ And, of course, we last need to close out the include guard: +

+
#endif
+
+

+ + Using utility + pattern macros +

+

+ By including: +

+
#include <boost/predef/make.h>
+
+

+ One will get a set of utlity macros to decompose common version macros as defined + by compilers. For example the EDG compiler uses a simple 3-digit version macro + (M,N,P). It can be decomesed and defined as: +

+
#define BOOST_CCOMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
+
+

+ The decomposition macros are split into three types: decimal decomposition, + hexadecimal decomposition, and date decomposition. They follow the format of + using "N" for decimal, "F" for hexadecimal, and "Y", + "M", "D" for dates. +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/introduction.html b/doc/html/predef/introduction.html new file mode 100644 index 0000000..c4a1ada --- /dev/null +++ b/doc/html/predef/introduction.html @@ -0,0 +1,205 @@ + + + +Introduction + + + + + + + + +
+PrevUpHomeNext +
+
+ +

+ This library defines a set of compiler, architecture, operating system, library, + and other version numbers from the information it can gather of C, C++, Objective + C, and Objective C++ predefined macros or those defined in generally available + headers. The idea for this library grew out of a proposal to extend the Boost + Config library to provide more, and consistent, information than the feature + definitions it supports. What follows is an edited version of that brief proposal. +

+

+ + Proposal +

+

+ The idea is to define a set of macros to identify compilers and consistently + represent their version. This includes: +

+
    +
  • + A unique BOOST_VERSION_NUMBER(major,minor,patch) macro to specify version + numbers (unfortunately, the name BOOST_VERSION is already taken to designate + the version number of boost itself). +
  • +
  • + A compiler identification macro, suitable for use in #if/#elif directives, for each of the supported + compilers. All macros would be defined, regardless of the compiler. The + one macro corresponding to the compiler being used would be defined, in + terms of BOOST_VERSION_NUMBER, to carry the exact compiler version. All + other macros would expand to an expression evaluating to false (for instance, + the token 0) to indicate that the corresponding compiler is not present. +
  • +
  • + "Null values" could be set, for all macros, in boost/config/select_compiler.hpp; + then, for each compiler the corresponding identification macro would be + #undef and re-#defined in the corresponding boost/compiler/(cc).hpp; however + in the context of the Boost.Config infrastructure using a "prefix" + header (to be introduced) or boost/config/suffix.hpp is a better solution. +
  • +
+

+ + Current + Library +

+

+ The current Predef library is now, both an independent library, and expanded + in scope. It includes detection and definition of architectures, compilers, + languages, libraries, operating systems, and endianness. The key benefits are: +

+
    +
  • + Version numbers that are always defined so that one doesn't have to guard + with #ifdef. +
  • +
  • + Guard macros that can be used for #ifdef + checks. +
  • +
  • + All possible definitions are included with the single #include + <boost/predef.h> + so that it's friendly to precompiled header usage. +
  • +
  • + Specific definitions can be included, ex. #include + <boost/predef/os/windows.h> + for single checks. +
  • +
  • + Predefs can be directly used in both preprocessor and compiler expressions + for comparison to other similarly defined values. +
  • +
  • + The headers are usable from multiple languages, that support the C preprocessor. + In particular C++, C, Objective C, and Objective C++. +
  • +
+

+ + Design + choices +

+

+ An important design choice concerns how to represent compiler versions by means + of a single integer number suitable for use in preprocessing directives. Let's + do some calculation. The "basic" signed type for preprocessing constant-expressions + is long in C90 (and C++, as of 2006) and intmax_t in C99. The type long shall + at least be able to represent the number +2 147 483 647. + This means the most significant digit can only be 0, 1 or 2; and if we want + all decimal digits to be able to vary between 0 and 9, the largest range we + can consider is [0, 999 999 999]. Distributing evenly, this + means 3 decimal digits for each version number part. +

+

+ So we can: +

+
    +
  1. + use an uneven distribution or +
  2. +
  3. + use more bits (a larger type) or +
  4. +
  5. + use 3/3/3 and have the particular compiler/platform/stdlib deal with setting + the numbers within the 3-digit range. +
  6. +
+

+ It appears relatively safe to go for the first option and set it at 2/2/5. + That covers CodeWarrior and others, which are up to and past 10 for the major + number. Some compilers use the build number in lieu of the patch one; five + digits (which is already reached by VC++ 8) seems a reasonable limit even in + this case. +

+
+ + + + + +
[Note]Note

+ A 2/2/6 scheme would allow for bigger patch/build numbers at the cost, for + instance, of limiting the major version number to 20 (or, with further constraints, + to 21). +

+

+ It might reassure the reader that this decision is actually encoded in one + place in the code; the definition of BOOST_VERSION_NUMBER. +

+

+ + Future + work +

+

+ Even though the basics of this library are done, there is much work that can + be done: +

+
    +
  • + Right now we limit the detection of libraries to known built-in predefined + macros, and to guaranteed to exist system and library headers. It might + be interesting to add something like auto-configuration predefs. This way + we can add definitions for user specific libraries and features. +
  • +
  • + Along with the above, it might be good to add some user control as to which + headers are included with the top-level header. Although in the current + form of the library this is less of an issue as one can include the specific + headers one needs. +
  • +
  • + Additionally, even if there is no auto-configure style option.. It would + be good to add optionally included headers so that user can get consistent + version number definitions for libraries they use. +
  • +
  • + Having a consistent set of version number definitions opens the door to + improving the user level syntax of libraries that do checks against version + numbers. Specifically Boost Config's BOOST_WORKAROUND + macro would benefit from a more readable syntax. As would the BOOST_TESTED_AT detail macro. +
  • +
  • + And obviously there's lots of work to do in reformulating the existing + Boost libraries to use the Predef library once it's accepted. +
  • +
  • + And there's the continuing work of adding definitions for present and future + compilers, platforms, architectures, languages, and libraries. +
  • +
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference.html b/doc/html/predef/reference.html new file mode 100644 index 0000000..d21d43b --- /dev/null +++ b/doc/html/predef/reference.html @@ -0,0 +1,44 @@ + + + +Reference + + + + + + + + +
+PrevUpHomeNext +
+ + + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/boost_arch_architecture_macros.html b/doc/html/predef/reference/boost_arch_architecture_macros.html new file mode 100644 index 0000000..b2d1ec8 --- /dev/null +++ b/doc/html/predef/reference/boost_arch_architecture_macros.html @@ -0,0 +1,2103 @@ + + + +BOOST_ARCH architecture macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_ARCH_ALPHA +
+

+ DEC Alpha architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __alpha__ +

+
+

+ detection +

+
+

+ __alpha +

+
+

+ detection +

+
+

+ _M_ALPHA +

+
+

+ detection +

+
+

+ __alpha_ev4__ +

+
+

+ 4.0.0 +

+
+

+ __alpha_ev5__ +

+
+

+ 5.0.0 +

+
+

+ __alpha_ev6__ +

+
+

+ 6.0.0 +

+
+
+ + BOOST_ARCH_ARM +
+

+ ARM architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __arm__ +

+
+

+ detection +

+
+

+ __thumb__ +

+
+

+ detection +

+
+

+ __TARGET_ARCH_ARM +

+
+

+ detection +

+
+

+ __TARGET_ARCH_THUMB +

+
+

+ detection +

+
+

+ __TARGET_ARCH_ARM +

+
+

+ V.0.0 +

+
+

+ __TARGET_ARCH_THUMB +

+
+

+ V.0.0 +

+
+
+ + BOOST_ARCH_BLACKFIN +
+

+ Blackfin Processors from Analog Devices. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __bfin__ +

+
+

+ detection +

+
+

+ __BFIN__ +

+
+

+ detection +

+
+

+ bfin +

+
+

+ detection +

+
+

+ BFIN +

+
+

+ detection +

+
+
+ + BOOST_ARCH_CONVEX +
+

+ Convex Computer + architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __convex__ +

+
+

+ detection +

+
+

+ __convex_c1__ +

+
+

+ 1.0.0 +

+
+

+ __convex_c2__ +

+
+

+ 2.0.0 +

+
+

+ __convex_c32__ +

+
+

+ 3.2.0 +

+
+

+ __convex_c34__ +

+
+

+ 3.4.0 +

+
+

+ __convex_c38__ +

+
+

+ 3.8.0 +

+
+
+ + BOOST_ARCH_IA64 +
+

+ Intel Itanium 64 architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __ia64__ +

+
+

+ detection +

+
+

+ _IA64 +

+
+

+ detection +

+
+

+ __IA64__ +

+
+

+ detection +

+
+

+ __ia64 +

+
+

+ detection +

+
+

+ _M_IA64 +

+
+

+ detection +

+
+

+ __itanium__ +

+
+

+ detection +

+
+
+ + BOOST_ARCH_M68K +
+

+ Motorola 68k architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __m68k__ +

+
+

+ detection +

+
+

+ M68000 +

+
+

+ detection +

+
+

+ __mc68060__ +

+
+

+ 6.0.0 +

+
+

+ mc68060 +

+
+

+ 6.0.0 +

+
+

+ __mc68060 +

+
+

+ 6.0.0 +

+
+

+ __mc68040__ +

+
+

+ 4.0.0 +

+
+

+ mc68040 +

+
+

+ 4.0.0 +

+
+

+ __mc68040 +

+
+

+ 4.0.0 +

+
+

+ __mc68030__ +

+
+

+ 3.0.0 +

+
+

+ mc68030 +

+
+

+ 3.0.0 +

+
+

+ __mc68030 +

+
+

+ 3.0.0 +

+
+

+ __mc68020__ +

+
+

+ 2.0.0 +

+
+

+ mc68020 +

+
+

+ 2.0.0 +

+
+

+ __mc68020 +

+
+

+ 2.0.0 +

+
+

+ __mc68010__ +

+
+

+ 1.0.0 +

+
+

+ mc68010 +

+
+

+ 1.0.0 +

+
+

+ __mc68010 +

+
+

+ 1.0.0 +

+
+

+ __mc68000__ +

+
+

+ 0.0.1 +

+
+

+ mc68000 +

+
+

+ 0.0.1 +

+
+

+ __mc68000 +

+
+

+ 0.0.1 +

+
+
+ + BOOST_ARCH_MIPS +
+

+ MIPS + architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __mips__ +

+
+

+ detection +

+
+

+ __mips +

+
+

+ detection +

+
+

+ __MIPS__ +

+
+

+ detection +

+
+

+ __mips +

+
+

+ V.0.0 +

+
+

+ _MIPS_ISA_MIPS1 +

+
+

+ 1.0.0 +

+
+

+ _R3000 +

+
+

+ 1.0.0 +

+
+

+ _MIPS_ISA_MIPS2 +

+
+

+ 2.0.0 +

+
+

+ __MIPS_ISA2__ +

+
+

+ 2.0.0 +

+
+

+ _R4000 +

+
+

+ 2.0.0 +

+
+

+ _MIPS_ISA_MIPS3 +

+
+

+ 3.0.0 +

+
+

+ __MIPS_ISA3__ +

+
+

+ 3.0.0 +

+
+

+ _MIPS_ISA_MIPS4 +

+
+

+ 4.0.0 +

+
+

+ __MIPS_ISA4__ +

+
+

+ 4.0.0 +

+
+
+ + BOOST_ARCH_PARISK +
+

+ HP/PA RISC + architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __hppa__ +

+
+

+ detection +

+
+

+ __hppa +

+
+

+ detection +

+
+

+ __HPPA__ +

+
+

+ detection +

+
+

+ _PA_RISC1_0 +

+
+

+ 1.0.0 +

+
+

+ _PA_RISC1_1 +

+
+

+ 1.1.0 +

+
+

+ __HPPA11__ +

+
+

+ 1.1.0 +

+
+

+ __PA7100__ +

+
+

+ 1.1.0 +

+
+

+ _PA_RISC2_0 +

+
+

+ 2.0.0 +

+
+

+ __RISC2_0__ +

+
+

+ 2.0.0 +

+
+

+ __HPPA20__ +

+
+

+ 2.0.0 +

+
+

+ __PA8000__ +

+
+

+ 2.0.0 +

+
+
+ + BOOST_ARCH_PPC +
+

+ PowerPC architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __powerpc +

+
+

+ detection +

+
+

+ __powerpc__ +

+
+

+ detection +

+
+

+ __POWERPC__ +

+
+

+ detection +

+
+

+ __ppc__ +

+
+

+ detection +

+
+

+ _M_PPC +

+
+

+ detection +

+
+

+ _ARCH_PPC +

+
+

+ detection +

+
+

+ __PPCGECKO__ +

+
+

+ detection +

+
+

+ __PPCBROADWAY__ +

+
+

+ detection +

+
+

+ _XENON +

+
+

+ detection +

+
+

+ __ppc601__ +

+
+

+ 6.1.0 +

+
+

+ _ARCH_601 +

+
+

+ 6.1.0 +

+
+

+ __ppc603__ +

+
+

+ 6.3.0 +

+
+

+ _ARCH_603 +

+
+

+ 6.3.0 +

+
+

+ __ppc604__ +

+
+

+ 6.4.0 +

+
+

+ __ppc604__ +

+
+

+ 6.4.0 +

+
+
+ + BOOST_ARCH_PYRAMID +
+

+ Pyramid 9810 architecture. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ pyr +

+
+

+ detection +

+
+
+ + BOOST_ARCH_RS6000 +
+

+ RS/6000 architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __THW_RS6000 +

+
+

+ detection +

+
+

+ _IBMR2 +

+
+

+ detection +

+
+

+ _POWER +

+
+

+ detection +

+
+

+ _ARCH_PWR +

+
+

+ detection +

+
+

+ _ARCH_PWR2 +

+
+

+ detection +

+
+
+ + BOOST_ARCH_SPARC +
+

+ SPARC architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __sparc__ +

+
+

+ detection +

+
+

+ __sparc +

+
+

+ detection +

+
+

+ __sparcv9 +

+
+

+ 9.0.0 +

+
+

+ __sparcv8 +

+
+

+ 8.0.0 +

+
+
+ + BOOST_ARCH_SH +
+

+ SuperH architecture: + If available versions [1-5] are specifically detected. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __sh__ +

+
+

+ detection +

+
+

+ __SH5__ +

+
+

+ 5.0.0 +

+
+

+ __SH4__ +

+
+

+ 4.0.0 +

+
+

+ __sh3__ +

+
+

+ 3.0.0 +

+
+

+ __SH3__ +

+
+

+ 3.0.0 +

+
+

+ __sh2__ +

+
+

+ 2.0.0 +

+
+

+ __sh1__ +

+
+

+ 1.0.0 +

+
+
+ + BOOST_ARCH_SYS370 +
+

+ System/370 architecture. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __370__ +

+
+

+ detection +

+
+

+ __THW_370__ +

+
+

+ detection +

+
+
+ + BOOST_ARCH_SYS390 +
+

+ System/390 architecture. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __s390__ +

+
+

+ detection +

+
+

+ __s390x__ +

+
+

+ detection +

+
+
+ + BOOST_ARCH_X86 +
+

+ Intel x86 architecture. + This is a category to indicate that either BOOST_ARCH_X86_32 + or BOOST_ARCH_X86_64 is detected. +

+
+ + BOOST_ARCH_Z +
+

+ z/Architecture + architecture. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __SYSC_ZARCH__ +

+
+

+ detection +

+
+
+ + BOOST_ARCH_X86_32 +
+

+ Intel x86 architecture: + If available versions [3-6] are specifically detected. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ i386 +

+
+

+ detection +

+
+

+ __i386__ +

+
+

+ detection +

+
+

+ __i486__ +

+
+

+ detection +

+
+

+ __i586__ +

+
+

+ detection +

+
+

+ __i686__ +

+
+

+ detection +

+
+

+ __i386 +

+
+

+ detection +

+
+

+ _M_IX86 +

+
+

+ detection +

+
+

+ _X86_ +

+
+

+ detection +

+
+

+ __THW_INTEL__ +

+
+

+ detection +

+
+

+ __I86__ +

+
+

+ detection +

+
+

+ __INTEL__ +

+
+

+ detection +

+
+

+ __I86__ +

+
+

+ V.0.0 +

+
+

+ _M_IX86 +

+
+

+ V.0.0 +

+
+

+ __i686__ +

+
+

+ 6.0.0 +

+
+

+ __i586__ +

+
+

+ 5.0.0 +

+
+

+ __i486__ +

+
+

+ 4.0.0 +

+
+

+ __i386__ +

+
+

+ 3.0.0 +

+
+
+ + BOOST_ARCH_X86_64 +
+

+ Intel IA-64 architecture. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __x86_64 +

+
+

+ detection +

+
+

+ __x86_64__ +

+
+

+ detection +

+
+

+ __amd64__ +

+
+

+ detection +

+
+

+ __amd64 +

+
+

+ detection +

+
+

+ _M_X64 +

+
+

+ detection +

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/boost_comp_compiler_macros.html b/doc/html/predef/reference/boost_comp_compiler_macros.html new file mode 100644 index 0000000..49599f1 --- /dev/null +++ b/doc/html/predef/reference/boost_comp_compiler_macros.html @@ -0,0 +1,1779 @@ + + + +BOOST_COMP compiler macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_COMP_BORLAND +
+

+ Borland C++ + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __BORLANDC__ +

+
+

+ detection +

+
+

+ __CODEGEARC__ +

+
+

+ detection +

+
+

+ __BORLANDC__ +

+
+

+ V.R.P +

+
+

+ __CODEGEARC__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_CLANG +
+

+ Clang compiler. Version + number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __clang__ +

+
+

+ detection +

+
+

+ __clang_major__, + __clang_minor__, + __clang_patchlevel__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_COMO +
+

+ Comeau C++ + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __COMO__ +

+
+

+ detection +

+
+

+ __COMO_VERSION__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_DEC +
+

+ Compaq + C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __DECCXX +

+
+

+ detection +

+
+

+ __DECC +

+
+

+ detection +

+
+

+ __DECCXX_VER +

+
+

+ V.R.P +

+
+

+ __DECC_VER +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_DIAB +
+

+ Diab + C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __DCC__ +

+
+

+ detection +

+
+

+ __VERSION_NUMBER__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_DMC +
+

+ Digital Mars + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __DMC__ +

+
+

+ detection +

+
+

+ __DMC__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_SYSC +
+

+ Dignus Systems/C++ compiler. + Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __SYSC__ +

+
+

+ detection +

+
+

+ __SYSC_VER__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_EDG +
+

+ EDG C++ Frontend + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __EDG__ +

+
+

+ detection +

+
+

+ __EDG_VERSION__ +

+
+

+ V.R.0 +

+
+
+ + BOOST_COMP_PATH +
+

+ EKOpath compiler. + Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __PATHCC__ +

+
+

+ detection +

+
+

+ __PATHCC__, __PATHCC_MINOR__, __PATHCC_PATCHLEVEL__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_GNUC +
+

+ Gnu GCC + C/C++ compiler. Version number available as major, minor, and patch + (if available). +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __GNUC__ +

+
+

+ detection +

+
+

+ __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ +

+
+

+ V.R.P +

+
+

+ __GNUC__, __GNUC_MINOR__ +

+
+

+ V.R.0 +

+
+
+ + BOOST_COMP_GCCXML +
+

+ GCC XML compiler. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __GCCXML__ +

+
+

+ detection +

+
+
+ + BOOST_COMP_GHS +
+

+ Green Hills + C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __ghs +

+
+

+ detection +

+
+

+ __ghs__ +

+
+

+ detection +

+
+

+ __GHS_VERSION_NUMBER__ +

+
+

+ V.R.P +

+
+

+ __ghs +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_HPACC +
+

+ HP aC++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __HP_aCC +

+
+

+ detection +

+
+

+ __HP_aCC +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_IAR +
+

+ IAR C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __IAR_SYSTEMS_ICC__ +

+
+

+ detection +

+
+

+ __VER__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_IBM +
+

+ IBM XL C/C++ + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __IBMCPP__ +

+
+

+ detection +

+
+

+ __xlC__ +

+
+

+ detection +

+
+

+ __xlc__ +

+
+

+ detection +

+
+

+ __COMPILER_VER__ +

+
+

+ V.R.P +

+
+

+ __xlC__ +

+
+

+ V.R.P +

+
+

+ __xlc__ +

+
+

+ V.R.P +

+
+

+ __IBMCPP__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_INTEL +
+

+ Intel C/C++ + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __INTEL_COMPILER +

+
+

+ detection +

+
+

+ __ICL +

+
+

+ detection +

+
+

+ __ICC +

+
+

+ detection +

+
+

+ __ECC +

+
+

+ detection +

+
+

+ __INTEL_COMPILER +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_KCC +
+

+ Kai C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __KCC +

+
+

+ detection +

+
+

+ __KCC_VERSION +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_LLVM +
+

+ LLVM compiler. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __llvm__ +

+
+

+ detection +

+
+
+ + BOOST_COMP_HIGHC +
+

+ MetaWare High C/C++ compiler. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __HIGHC__ +

+
+

+ detection +

+
+
+ + BOOST_COMP_MWERKS +
+

+ Metrowerks CodeWarrior + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __MWERKS__ +

+
+

+ detection +

+
+

+ __CWCC__ +

+
+

+ detection +

+
+

+ __CWCC__ +

+
+

+ V.R.P +

+
+

+ __MWERKS__ +

+
+

+ V.R.P >= 4.2.0 +

+
+

+ __MWERKS__ +

+
+

+ 9.R.0 +

+
+

+ __MWERKS__ +

+
+

+ 8.R.0 +

+
+
+ + BOOST_COMP_MRI +
+

+ Microtec C/C++ compiler. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _MRI +

+
+

+ detection +

+
+
+ + BOOST_COMP_MPW +
+

+ MPW + C++ compiler. Version number available as major, and minor. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __MRC__ +

+
+

+ detection +

+
+

+ MPW_C +

+
+

+ detection +

+
+

+ MPW_CPLUS +

+
+

+ detection +

+
+

+ __MRC__ +

+
+

+ V.R.0 +

+
+
+ + BOOST_COMP_PALM +
+

+ Palm C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _PACC_VER +

+
+

+ detection +

+
+

+ _PACC_VER +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_PGI +
+

+ Portland Group + C/C++ compiler. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __PGI +

+
+

+ detection +

+
+

+ __PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__ +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_SGI +
+

+ SGI MIPSpro compiler. + Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __sgi +

+
+

+ detection +

+
+

+ sgi +

+
+

+ detection +

+
+

+ _SGI_COMPILER_VERSION +

+
+

+ V.R.P +

+
+

+ _COMPILER_VERSION +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_SUNPRO +
+

+ Sun Studio + compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __SUNPRO_CC +

+
+

+ detection +

+
+

+ __SUNPRO_C +

+
+

+ detection +

+
+

+ __SUNPRO_CC +

+
+

+ V.R.P +

+
+

+ __SUNPRO_C +

+
+

+ V.R.P +

+
+
+ + BOOST_COMP_TENDRA +
+

+ TenDRA C/C++ + compiler. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __TenDRA__ +

+
+

+ detection +

+
+
+ + BOOST_COMP_MSVC +
+

+ Microsoft Visual + C/C++ compiler. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _MSC_VER +

+
+

+ detection +

+
+

+ _MSC_FULL_VER +

+
+

+ V.R.P +

+
+

+ _MSC_VER +

+
+

+ V.R.0 +

+
+
+ + BOOST_COMP_WATCOM +
+

+ Watcom C++ compiler. + Version number available as major, and minor. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __WATCOMC__ +

+
+

+ detection +

+
+

+ __WATCOMC__ +

+
+

+ V.R.P +

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/boost_lang_language_standards_ma.html b/doc/html/predef/reference/boost_lang_language_standards_ma.html new file mode 100644 index 0000000..b29429b --- /dev/null +++ b/doc/html/predef/reference/boost_lang_language_standards_ma.html @@ -0,0 +1,334 @@ + + + +BOOST_LANG language standards macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_LANG_OBJC +
+

+ Objective-C + language. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __OBJC__ +

+
+

+ detection +

+
+
+ + BOOST_LANG_STDC +
+

+ Standard + C language. If available, the year of the standard is detected as + YYYY.MM.1 from the Epoc date. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __STDC__ +

+
+

+ detection +

+
+

+ __STDC_VERSION__ +

+
+

+ V.R.P +

+
+
+ + BOOST_LANG_STDCPP +
+

+ Standard C++ language. + If available, the year of the standard is detected as YYYY.MM.1 from the + Epoc date. Because of the way the C++ standardization process works the defined + version year will not be the commonly known year of the standard. Specifically + the defined versions are: +

+
+

Table 1. Detected Version Number vs. C++ Standard Year

+
+++++ + + + + + + + + + + + + + + + + + +
+

+ Detected Version Number +

+
+

+ Standard Year +

+
+

+ C++ Standard +

+
+

+ 27.11.1 +

+
+

+ 1998 +

+
+

+ ISO/IEC 14882:1998 +

+
+

+ 41.12.1 +

+
+

+ 2011 +

+
+

+ ISO/IEC 14882:2011 +

+
+
+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __cplusplus +

+
+

+ detection +

+
+

+ __cplusplus +

+
+

+ YYYY.MM.1 +

+
+
+ + BOOST_LANG_STDCPPCLI +
+

+ Standard C++/CLI + language. If available, the year of the standard is detected as YYYY.MM.1 + from the Epoc date. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __cplusplus_cli +

+
+

+ detection +

+
+

+ __cplusplus_cli +

+
+

+ YYYY.MM.1 +

+
+
+ + BOOST_LANG_STDECPP +
+

+ Standard Embedded + C++ language. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __embedded_cplusplus +

+
+

+ detection +

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/boost_lib_library_macros.html b/doc/html/predef/reference/boost_lib_library_macros.html new file mode 100644 index 0000000..e1cd8c4 --- /dev/null +++ b/doc/html/predef/reference/boost_lib_library_macros.html @@ -0,0 +1,896 @@ + + + +BOOST_LIB library macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_LIB_C_GNU +
+

+ GNU glibc Standard + C library. Version number available as major, and minor. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __GLIBC__ +

+
+

+ detection +

+
+

+ __GNU_LIBRARY__ +

+
+

+ detection +

+
+

+ __GLIBC__, __GLIBC_MINOR__ +

+
+

+ V.R.0 +

+
+

+ __GNU_LIBRARY__, + __GNU_LIBRARY_MINOR__ +

+
+

+ V.R.0 +

+
+
+ + BOOST_LIB_C_UC +
+

+ uClibc Standard + C library. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __UCLIBC__ +

+
+

+ detection +

+
+

+ __UCLIBC_MAJOR__, + __UCLIBC_MINOR__, + __UCLIBC_SUBLEVEL__ +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_C_VMS +
+

+ VMS libc Standard C library. Version number available as major, minor, and + patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __CRTL_VER +

+
+

+ detection +

+
+

+ __CRTL_VER +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_C_ZOS +
+

+ z/OS libc Standard C library. Version number available as major, minor, and + patch. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __LIBREL__ +

+
+

+ detection +

+
+

+ __LIBREL__ +

+
+

+ V.R.P +

+
+

+ __TARGET_LIB__ +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_CXX +
+

+ libc++ C++ Standard Library. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _LIBCPP_VERSION +

+
+

+ detection +

+
+

+ _LIBCPP_VERSION +

+
+

+ V.0.P +

+
+
+ + BOOST_LIB_STD_DINKUMWARE +
+

+ Dinkumware Standard + C++ Library. If available version number as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _YVALS, __IBMCPP__ +

+
+

+ detection +

+
+

+ _CPPLIB_VER +

+
+

+ detection +

+
+

+ _CPPLIB_VER +

+
+

+ V.R.0 +

+
+
+ + BOOST_LIB_STD_COMO +
+

+ Comeau Computing + Standard C++ Library. Version number available as major. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __LIBCOMO__ +

+
+

+ detection +

+
+

+ __LIBCOMO_VERSION__ +

+
+

+ V.0.0 +

+
+
+ + BOOST_LIB_STD_MSIPL +
+

+ Modena Software Lib++ Standard C++ + Library. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ MSIPL_COMPILE_H +

+
+

+ detection +

+
+

+ __MSIPL_COMPILE_H +

+
+

+ detection +

+
+
+ + BOOST_LIB_STD_MSL +
+

+ Metrowerks Standard C++ Library. + Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __MSL_CPP__ +

+
+

+ detection +

+
+

+ __MSL__ +

+
+

+ detection +

+
+

+ __MSL_CPP__ +

+
+

+ V.R.P +

+
+

+ __MSL__ +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_RW +
+

+ Roguewave Standard C++ library. + If available version number as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __STD_RWCOMPILER_H__ +

+
+

+ detection +

+
+

+ _RWSTD_VER +

+
+

+ detection +

+
+

+ _RWSTD_VER +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_SGI +
+

+ SGI Standard C++ library. + If available version number as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __STL_CONFIG_H +

+
+

+ detection +

+
+

+ __SGI_STL +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_GNU +
+

+ GNU libstdc++ Standard + C++ library. Version number available as year (from 1970), month, and day. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __GLIBCXX__ +

+
+

+ detection +

+
+

+ __GLIBCPP__ +

+
+

+ detection +

+
+

+ __GLIBCXX__ +

+
+

+ V.R.P +

+
+

+ __GLIBCPP__ +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_STLPORT +
+

+ STLport Standard C++ + library. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __SGI_STL_PORT +

+
+

+ detection +

+
+

+ _STLPORT_VERSION +

+
+

+ detection +

+
+

+ _STLPORT_MAJOR, + _STLPORT_MINOR, + _STLPORT_PATCHLEVEL +

+
+

+ V.R.P +

+
+

+ _STLPORT_VERSION +

+
+

+ V.R.P +

+
+

+ __SGI_STL_PORT +

+
+

+ V.R.P +

+
+
+ + BOOST_LIB_STD_IBM +
+

+ IBM VACPP Standard + C++ library. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __IBMCPP__ +

+
+

+ detection +

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/boost_os_operating_system_macros.html b/doc/html/predef/reference/boost_os_operating_system_macros.html new file mode 100644 index 0000000..2020f9c --- /dev/null +++ b/doc/html/predef/reference/boost_os_operating_system_macros.html @@ -0,0 +1,1807 @@ + + + +BOOST_OS operating system macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_OS_AIX +
+

+ IBM AIX + operating system. Version number available as major, minor, and patch. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _AIX +

+
+

+ detection +

+
+

+ __TOS_AIX__ +

+
+

+ detection +

+
+

+ _AIX43 +

+
+

+ 4.3.0 +

+
+

+ _AIX41 +

+
+

+ 4.1.0 +

+
+

+ _AIX32 +

+
+

+ 3.2.0 +

+
+

+ _AIX3 +

+
+

+ 3.0.0 +

+
+
+ + BOOST_OS_AMIGAOS +
+

+ AmigaOS operating + system. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ AMIGA +

+
+

+ detection +

+
+

+ __amigaos__ +

+
+

+ detection +

+
+
+ + BOOST_OS_ANDROID +
+

+ Android + operating system. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __ANDROID__ +

+
+

+ detection +

+
+
+ + BOOST_OS_BEOS +
+

+ BeOS operating system. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __BEOS__ +

+
+

+ detection +

+
+
+ + BOOST_OS_BSD +
+

+ BSD + operating system. +

+

+ BSD has various branch operating systems possible and each detected individually. + This detects the following variations and sets a specific version number + macro to match: +

+
+
+ + + + + +
[Note]Note

+ The general BOOST_OS_BSD + is set in all cases to indicate some form of BSD. If the above variants + is detected the corresponding macro is also set. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ BSD +

+
+

+ detection +

+
+

+ _SYSTYPE_BSD +

+
+

+ detection +

+
+

+ BSD4_2 +

+
+

+ 4.2.0 +

+
+

+ BSD4_3 +

+
+

+ 4.3.0 +

+
+

+ BSD4_4 +

+
+

+ 4.4.0 +

+
+

+ BSD +

+
+

+ V.R.0 +

+
+
+ + BOOST_OS_CYGWIN +
+

+ Cygwin evironment. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __CYGWIN__ +

+
+

+ detection +

+
+
+ + BOOST_OS_HPUX +
+

+ HP-UX operating system. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ hpux +

+
+

+ detection +

+
+

+ _hpux +

+
+

+ detection +

+
+

+ __hpux +

+
+

+ detection +

+
+
+ + BOOST_OS_IRIX +
+

+ IRIX operating system. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ sgi +

+
+

+ detection +

+
+

+ __sgi +

+
+

+ detection +

+
+
+ + BOOST_OS_LINUX +
+

+ Linux operating system. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ linux +

+
+

+ detection +

+
+

+ __linux +

+
+

+ detection +

+
+
+ + BOOST_OS_MACOS +
+

+ Mac OS operating + system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ macintosh +

+
+

+ detection +

+
+

+ Macintosh +

+
+

+ detection +

+
+

+ __APPLE__ +

+
+

+ detection +

+
+

+ __MACH__ +

+
+

+ detection +

+
+

+ __APPLE__, __MACH__ +

+
+

+ 10.0.0 +

+
+

+ otherwise +

+
+

+ 9.0.0 +

+
+
+ + BOOST_OS_OS400 +
+

+ IBM OS/400 operating + system. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __OS400__ +

+
+

+ detection +

+
+
+ + BOOST_OS_QNX +
+

+ QNX operating system. + Version number available as major, and minor if possible. And version 4 is + specifically detected. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __QNX__ +

+
+

+ detection +

+
+

+ __QNXNTO__ +

+
+

+ detection +

+
+

+ _NTO_VERSION +

+
+

+ V.R.0 +

+
+

+ __QNX__ +

+
+

+ 4.0.0 +

+
+
+ + BOOST_OS_SOLARIS +
+

+ Solaris + operating system. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ sun +

+
+

+ detection +

+
+

+ __sun +

+
+

+ detection +

+
+
+ + BOOST_OS_UNIX +
+

+ Unix Environment operating + system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ unix +

+
+

+ detection +

+
+

+ __unix +

+
+

+ detection +

+
+

+ _XOPEN_SOURCE +

+
+

+ detection +

+
+

+ _POSIX_SOURCE +

+
+

+ detection +

+
+
+ + BOOST_OS_SVR4 +
+

+ SVR4 Environment + operating system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __sysv__ +

+
+

+ detection +

+
+

+ __SVR4 +

+
+

+ detection +

+
+

+ __svr4__ +

+
+

+ detection +

+
+

+ _SYSTYPE_SVR4 +

+
+

+ detection +

+
+
+ + BOOST_OS_VMS +
+

+ VMS operating system. +

+
++++ + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ VMS +

+
+

+ detection +

+
+

+ __VMS +

+
+

+ detection +

+
+

+ __VMS_VER +

+
+

+ V.R.P +

+
+
+ + BOOST_OS_WINDOWS +
+

+ Microsoft + Windows operating system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ _WIN32 +

+
+

+ detection +

+
+

+ _WIN64 +

+
+

+ detection +

+
+

+ __WIN32__ +

+
+

+ detection +

+
+

+ __TOS_WIN__ +

+
+

+ detection +

+
+

+ __WINDOWS__ +

+
+

+ detection +

+
+
+ + BOOST_OS_BSD_BSDI +
+

+ BSDi BSD/OS operating + system. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __bsdi__ +

+
+

+ detection +

+
+
+ + BOOST_OS_BSD_DRAGONFLY +
+

+ DragonFly BSD + operating system. +

+
++++ + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __DragonFly__ +

+
+

+ detection +

+
+
+ + BOOST_OS_BSD_FREE +
+

+ FreeBSD operating + system. +

+
++++ + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __FreeBSD__ +

+
+

+ detection +

+
+

+ __FreeBSD_version +

+
+

+ V.R.P +

+
+
+ + BOOST_OS_BSD_NET +
+

+ NetBSD operating + system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __NETBSD__ +

+
+

+ detection +

+
+

+ __NetBSD__ +

+
+

+ detection +

+
+

+ __NETBSD_version +

+
+

+ V.R.P +

+
+

+ NetBSD0_8 +

+
+

+ 0.8.0 +

+
+

+ NetBSD0_9 +

+
+

+ 0.9.0 +

+
+

+ NetBSD1_0 +

+
+

+ 1.0.0 +

+
+

+ __NetBSD_Version +

+
+

+ V.R.P +

+
+
+ + BOOST_OS_BSD_OPEN +
+

+ OpenBSD operating + system. +

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ Symbol +

+
+

+ Version +

+
+

+ __OpenBSD__ +

+
+

+ detection +

+
+

+ OpenBSD2_0 +

+
+

+ 2.0.0 +

+
+

+ OpenBSD2_1 +

+
+

+ 2.1.0 +

+
+

+ OpenBSD2_2 +

+
+

+ 2.2.0 +

+
+

+ OpenBSD2_3 +

+
+

+ 2.3.0 +

+
+

+ OpenBSD2_4 +

+
+

+ 2.4.0 +

+
+

+ OpenBSD2_5 +

+
+

+ 2.5.0 +

+
+

+ OpenBSD2_6 +

+
+

+ 2.6.0 +

+
+

+ OpenBSD2_7 +

+
+

+ 2.7.0 +

+
+

+ OpenBSD2_8 +

+
+

+ 2.8.0 +

+
+

+ OpenBSD2_9 +

+
+

+ 2.9.0 +

+
+

+ OpenBSD3_0 +

+
+

+ 3.0.0 +

+
+

+ OpenBSD3_1 +

+
+

+ 3.1.0 +

+
+

+ OpenBSD3_2 +

+
+

+ 3.2.0 +

+
+

+ OpenBSD3_3 +

+
+

+ 3.3.0 +

+
+

+ OpenBSD3_4 +

+
+

+ 3.4.0 +

+
+

+ OpenBSD3_5 +

+
+

+ 3.5.0 +

+
+

+ OpenBSD3_6 +

+
+

+ 3.6.0 +

+
+

+ OpenBSD3_7 +

+
+

+ 3.7.0 +

+
+

+ OpenBSD3_8 +

+
+

+ 3.8.0 +

+
+

+ OpenBSD3_9 +

+
+

+ 3.9.0 +

+
+

+ OpenBSD4_0 +

+
+

+ 4.0.0 +

+
+

+ OpenBSD4_1 +

+
+

+ 4.1.0 +

+
+

+ OpenBSD4_2 +

+
+

+ 4.2.0 +

+
+

+ OpenBSD4_3 +

+
+

+ 4.3.0 +

+
+

+ OpenBSD4_4 +

+
+

+ 4.4.0 +

+
+

+ OpenBSD4_5 +

+
+

+ 4.5.0 +

+
+

+ OpenBSD4_6 +

+
+

+ 4.6.0 +

+
+

+ OpenBSD4_7 +

+
+

+ 4.7.0 +

+
+

+ OpenBSD4_8 +

+
+

+ 4.8.0 +

+
+

+ OpenBSD4_9 +

+
+

+ 4.9.0 +

+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/other_macros.html b/doc/html/predef/reference/other_macros.html new file mode 100644 index 0000000..f747249 --- /dev/null +++ b/doc/html/predef/reference/other_macros.html @@ -0,0 +1,84 @@ + + + +Other macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_ENDIAN_* +
+

+ Detection of endian memory ordering. There are four defined macros in this + header that define the various generally possible endian memory orderings: +

+
    +
  • + BOOST_ENDIAN_BIG_BYTE, + byte-swapped big-endian. +
  • +
  • + BOOST_ENDIAN_BIG_WORD, + word-swapped big-endian. +
  • +
  • + BOOST_ENDIAN_LITTLE_BYTE, + byte-swapped little-endian. +
  • +
  • + BOOST_ENDIAN_LITTLE_WORD, + word-swapped little-endian. +
  • +
+

+ The detection is conservative in that it only identifies endianness that + it knows for certain. In particular bi-endianness is not indicated as is + it not practically possible to determine the endianness from anything but + an operating system provided header. And the currently known headers do not + define that programatic bi-endianness is available. +

+

+ This implementation is a compilation of various publicly available information + and acquired knowledge: +

+
    +
  1. + The indispensable documentation of "Pre-defined Compiler Macros" + Endianness. +
  2. +
  3. + The various endian specifications available in the Wikipedia + computer architecture pages. +
  4. +
  5. + Generally available searches for headers that define endianness. +
  6. +
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/reference/version_definition_macros.html b/doc/html/predef/reference/version_definition_macros.html new file mode 100644 index 0000000..3a6a733 --- /dev/null +++ b/doc/html/predef/reference/version_definition_macros.html @@ -0,0 +1,184 @@ + + + +Version definition macros + + + + + + + + +
+PrevUpHomeNext +
+
+ +
+ + BOOST_VERSION_NUMBER +
+
BOOST_VERSION_NUMBER(major,minor,patch)
+
+

+ Defines standard version numbers, with these properties: +

+
    +
  • + Decimal base whole numbers in the range [0,1000000000). The number range + is designed to allow for a (2,2,5) triplet. Which fits within a 32 bit + value. +
  • +
  • + The major number can + be in the [0,99] range. +
  • +
  • + The minor number can + be in the [0,99] range. +
  • +
  • + The patch number can + be in the [0,99999] range. +
  • +
  • + Values can be specified in any base. As the defined value is an constant + expression. +
  • +
  • + Value can be directly used in both preprocessor and compiler expressions + for comparison to other similarly defined values. +
  • +
  • + The implementation enforces the individual ranges for the major, minor, + and patch numbers. And values over the ranges are truncated (modulo). +
  • +
+
+ + BOOST_PREDEF_MAKE_.. + macros +
+

+ These set of macros decompose common vendor version number macros which are + composed version, revision, and patch digits. The naming convention indicates: +

+
    +
  • + The base of the specified version number. "BOOST_PREDEF_MAKE_0X" + for hexadecimal digits, and "BOOST_PREDEF_MAKE_10" + for decimal digits. +
  • +
  • + The format of the vendor version number. Where "V" + indicates the version digits, "R" + indicates the revision digits, "P" + indicates the patch digits, and "0" + indicates an ignored digit. +
  • +
+

+ Macros are: +

+

+ BOOST_PREDEF_MAKE_0X_VRP(V) +

+

+ BOOST_PREDEF_MAKE_0X_VVRP(V) +

+

+ BOOST_PREDEF_MAKE_0X_VRPP(V) +

+

+ BOOST_PREDEF_MAKE_0X_VVRR(V) +

+

+ BOOST_PREDEF_MAKE_0X_VRRPPPP(V) +

+

+ BOOST_PREDEF_MAKE_0X_VVRRP(V) +

+

+ BOOST_PREDEF_MAKE_0X_VRRPP000(V) +

+

+ BOOST_PREDEF_MAKE_10_VPPP(V) +

+

+ BOOST_PREDEF_MAKE_10_VRP(V) +

+

+ BOOST_PREDEF_MAKE_10_VRP000(V) +

+

+ BOOST_PREDEF_MAKE_10_VRPP(V) +

+

+ BOOST_PREDEF_MAKE_10_VRR(V) +

+

+ BOOST_PREDEF_MAKE_10_VRRPP(V) +

+

+ BOOST_PREDEF_MAKE_10_VRR000(V) +

+

+ BOOST_PREDEF_MAKE_10_VV00(V) +

+

+ BOOST_PREDEF_MAKE_10_VVRR(V) +

+

+ BOOST_PREDEF_MAKE_10_VVRRPP(V) +

+

+ BOOST_PREDEF_MAKE_10_VVRR0PP00(V) +

+

+ BOOST_PREDEF_MAKE_10_VVRR0PPPP(V) +

+

+ BOOST_PREDEF_MAKE_10_VVRR00PP00(V) +

+
+ + BOOST_PREDEF_MAKE_*.. + date macros +
+

+ Date decomposition macros return a date in the relative to the 1970 Epoch + date. If the month is not available, January 1st is used as the month and + day. If the day is not available, but the month is, the 1st of the month + is used as the day. +

+

+ BOOST_PREDEF_MAKE_DATE(Y,M,D) +

+

+ BOOST_PREDEF_MAKE_YYYYMMDD(V) +

+

+ BOOST_PREDEF_MAKE_YYYY(V) +

+

+ BOOST_PREDEF_MAKE_YYYYMM(V) +

+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/predef/using_the_predefs.html b/doc/html/predef/using_the_predefs.html new file mode 100644 index 0000000..b07a85c --- /dev/null +++ b/doc/html/predef/using_the_predefs.html @@ -0,0 +1,203 @@ + + + +Using the predefs + + + + + + + + +
+PrevUpHomeNext +
+
+ +

+ To use the automatically defined predefs one needs to only include the single + top-level header: +

+
#include <boost/predef.h>
+
+

+ This defines all the version macros known + to the library. For each macro it will be defined to either a zero + valued expression for when the particular item is not detected, and to a positive + value if it is detected. The predef macros fall onto five categories each with + macros of a particular prefix: +

+
    +
  • + BOOST_ARCH_for system/CPU + architecture one is compiling for. +
  • +
  • + BOOST_COMP_ for the compiler + one is using. +
  • +
  • + BOOST_LANG_ for language + standards one is compiling against. +
  • +
  • + BOOST_LIB_C_ and BOOST_LIB_STD_ for the C and C++ standard + library in use. +
  • +
  • + BOOST_OS_ for the operating + system we are compiling to. +
  • +
  • + BOOST_ENDIAN_ for endianness + of the os and architecture combination. +
  • +
+
+ + + + + +
[Note]Note

+ The detected definitions are for the configuration one is targeting during + the compile. In particular in a cross-compile this means the target system, + and not the host system. +

+

+ One uses the individual definitions to compare against specific versions by + comparing against the BOOST_VERSION_NUMBER + macro. For example, to make a choice based on the version of the GCC C++ compiler + one would: +

+
#include <boost/predef.h>
+#include <iostream>
+
+int main()
+{
+  if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0))
+    std::cout << "GCC compiler is at least version 4.0.0" << std::endl;
+  else
+    std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl;
+  return 0;
+}
+
+

+ As you might notice above the else + clause also covers the case where the particular compiler is not detected. + But one can make the test also test for the detection. All predef definitions + are defined as a zero (0) expression when not detected. Hence one could use + the detection with a natural single condition. For example: +

+
#include <boost/predef.h>
+#include <iostream>
+
+int main()
+{
+  if (BOOST_COMP_GNUC)
+    std::cout << "This is GNU GCC!" << std::endl;
+  else
+    std::cout << "Not GNU GCC." << std::endl;
+  return 0;
+}
+
+

+ And since the predef's are preprocessor definitions the same is possible from + the preprocessor: +

+
#include <boost/predef.h>
+#include <iostream>
+
+#if BOOST_COMP_GNUC
+  #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
+    const char * the_compiler = "GNU GCC, of at least version 4."
+  #else
+    const char * the_compiler = "GNU GCC, less than version 4."
+  #endif
+#else
+  const char * the_compiler = "Not GNU GCC."
+#endif
+
+int main()
+{
+  std::cout << the_compiler << std::endl;
+  return 0;
+}
+
+

+ In addition, for each version macro defined there is a *_AVAILABLE macro defined only when the particular + aspect is detected. I.e. a definition equivalent to: +

+
#if BOOST_PREDEF_ABC
+  #define BOOST_PREDEF_ABC_AVAILABLE
+#endif
+
+

+ Also for each aspect there is a macro defined with a descriptive name of what + the detection is. +

+

+ + Using the + BOOST_VERSION_NUMBER macro +

+

+ All the predefs are defined to be a use of the BOOST_VERSION_NUMBER + macro. The macro takes individual major, minor, and patch value expressions: +

+
#define BOOST_VERSION_NUMBER( major, minor, patch ) ...
+
+

+ The arguments are: +

+
    +
  1. + Major version number, as a constant value expression in the range [0,99]. +
  2. +
  3. + Minor version number, as a constant value expression in the range [0,99]. +
  4. +
  5. + Patch-level version number, as a constant value expression in the range + [0,99999]. +
  6. +
+

+ The ranges for each are "enforced" by the use of a modulo ("%"), + i.e. truncation, as opposed to a clamp. And hence this means that the limits + are enforced only enough to keep from having out-of-range problems. But not + enough to prevent other kinds of problems. Like exceeding the range and getting + false detections, or non-detections. It is up to the individual predefs to + ensure correct usage beyond the range guarantee. +

+

+ The values for the arguments can be any preprocessor valid constant value expression. + Only constant value arithmetic is used in the definition of the BOOST_VERSION_NUMBER macro and in any of + the other predef macros. This means that any allowed base is possible, i.e. + binary, octal, decimal, and hexadecimal. For example: +

+
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015)
+
+

+ Is equivalent to: +

+
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13)
+
+
+ + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/reference.css b/doc/html/reference.css new file mode 100644 index 0000000..6826962 --- /dev/null +++ b/doc/html/reference.css @@ -0,0 +1,11 @@ +/*============================================================================ + Copyright 2003-2004 Douglas Gregor + Distributed under the Boost Software License, Version 1.0. (See accompany- + ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +============================================================================*/ + +PRE.synopsis { + background-color: #e0ffff; + border: thin solid blue; + padding: 1em +} \ No newline at end of file diff --git a/doc/predef.qbk b/doc/predef.qbk new file mode 100644 index 0000000..bc2ac28 --- /dev/null +++ b/doc/predef.qbk @@ -0,0 +1,478 @@ +[article Predef + [quickbook 1.7] + [version 1.0] + [authors [Rivera, Rene]] + [copyright 2005 Rene Rivera, 2008-2013 Redshift Software Inc] + [purpose Identification and specification of predefined macros.] + [license + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + [@http://www.boost.org/LICENSE_1_0.txt]) + ] + [source-mode c++] +] + +[section Introduction] + +This library defines a set of compiler, architecture, operating system, +library, and other version numbers from the information it can gather of +C, C++, Objective C, and Objective C++ predefined macros or those defined +in generally available headers. The idea for this library grew out of a +proposal to extend the Boost Config library to provide more, and consistent, +information than the feature definitions it supports. What follows is +an edited version of that brief proposal. + +[heading Proposal] + +The idea is to define a set of macros to identify compilers and +consistently represent their version. This includes: + +* A unique BOOST_VERSION_NUMBER(major,minor,patch) macro to specify version + numbers (unfortunately, the name BOOST_VERSION is already taken to designate + the version number of boost itself). +* A compiler identification macro, suitable for use in `#if`/`#elif` directives, + for each of the supported compilers. All macros would be defined, regardless + of the compiler. The one macro corresponding to the compiler being used would + be defined, in terms of BOOST_VERSION_NUMBER, to carry the exact compiler + version. All other macros would expand to an expression evaluating to false + (for instance, the token 0) to indicate that the corresponding compiler is not + present. +* "Null values" could be set, for all macros, in + boost/config/select_compiler.hpp; then, for each compiler the corresponding + identification macro would be #undef and re-#defined in the corresponding + boost/compiler/(cc).hpp; however in the context of the Boost.Config + infrastructure using a "prefix" header (to be introduced) or + boost/config/suffix.hpp is a better solution. + +[heading Current Library] + +The current Predef library is now, both an independent library, and expanded +in scope. It includes detection and definition of architectures, compilers, +languages, libraries, operating systems, and endianness. The key benefits are: + +* Version numbers that are always defined so that one doesn't have to guard + with `#ifdef`. +* Guard macros that can be used for `#ifdef` checks. +* All possible definitions are included with the single `#include ` + so that it's friendly to precompiled header usage. +* Specific definitions can be included, ex. `#include ` + for single checks. +* Predefs can be directly used in both preprocessor and compiler expressions + for comparison to other similarly defined values. +* The headers are usable from multiple languages, that support the C preprocessor. + In particular C++, C, Objective C, and Objective C++. + +[heading Design choices] + +An important design choice concerns how to represent compiler versions by means +of a single integer number suitable for use in preprocessing directives. Let's +do some calculation. The "basic" signed type for preprocessing +constant-expressions is long in C90 (and C++, as of 2006) and intmax_t in C99. +The type long shall at least be able to represent the number [^+2 147 483 647]. +This means the most significant digit can only be 0, 1 or 2; and if we want all +decimal digits to be able to vary between 0 and 9, the largest range we can +consider is [^\[0, 999 999 999\]]. Distributing evenly, this means 3 decimal +digits for each version number part. + +So we can: + +# use an uneven distribution or +# use more bits (a larger type) or +# use 3/3/3 and have the particular compiler/platform/stdlib deal with setting + the numbers within the 3-digit range. + +It appears relatively safe to go for the first option and set it at 2/2/5. That +covers CodeWarrior and others, which are up to and past 10 for the major number. +Some compilers use the build number in lieu of the patch one; five digits +(which is already reached by VC++ 8) seems a reasonable limit even in this case. + +[note A 2/2/6 scheme would allow for bigger patch/build numbers at the cost, +for instance, of limiting the major version number to 20 (or, with further +constraints, to 21).] + +It might reassure the reader that this decision is actually encoded in one place +in the code; the definition of `BOOST_VERSION_NUMBER`. + +[heading Future work] + +Even though the basics of this library are done, there is much work that can be +done: + +* Right now we limit the detection of libraries to known built-in predefined + macros, and to guaranteed to exist system and library headers. It might be + interesting to add something like auto-configuration predefs. This way we can + add definitions for user specific libraries and features. +* Along with the above, it might be good to add some user control as to which + headers are included with the top-level header. Although in the current + form of the library this is less of an issue as one can include the + specific headers one needs. +* Additionally, even if there is no auto-configure style option.. It would be + good to add optionally included headers so that user can get consistent + version number definitions for libraries they use. +* Having a consistent set of version number definitions opens the door to + improving the user level syntax of libraries that do checks against version + numbers. Specifically Boost Config's `BOOST_WORKAROUND` macro would benefit + from a more readable syntax. As would the `BOOST_TESTED_AT` detail macro. +* And obviously there's lots of work to do in reformulating the existing + Boost libraries to use the Predef library once it's accepted. +* And there's the continuing work of adding definitions for present and + future compilers, platforms, architectures, languages, and libraries. + +[endsect] [/Introduction] + +[section Using the predefs] + +To use the automatically defined predefs one needs to only include the +single top-level header: + +`` + #include +`` + +This defines [*all] the version macros known to the library. For each +macro it will be defined to either a /zero/ valued expression for when +the particular item is not detected, and to a /positive/ value if it +is detected. The predef macros fall onto five categories each with +macros of a particular prefix: + +* `BOOST_ARCH_`for system/CPU architecture one is compiling for. +* `BOOST_COMP_` for the compiler one is using. +* `BOOST_LANG_` for language standards one is compiling against. +* `BOOST_LIB_C_` and `BOOST_LIB_STD_` for the C and C++ standard library + in use. +* `BOOST_OS_` for the operating system we are compiling to. +* `BOOST_ENDIAN_` for endianness of the os and architecture combination. + +[note The detected definitions are for the configuration one is targeting +during the compile. In particular in a cross-compile this means the target +system, and not the host system.] + +One uses the individual definitions to compare against specific versions +by comparing against the `BOOST_VERSION_NUMBER` macro. For example, to make +a choice based on the version of the GCC C++ compiler one would: + +`` + #include + #include + + int main() + { + if (BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)) + std::cout << "GCC compiler is at least version 4.0.0" << std::endl; + else + std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl; + return 0; + } +`` + +As you might notice above the `else` clause also covers the case where +the particular compiler is not detected. But one can make the test +also test for the detection. All predef definitions are defined +as a zero (0) expression when not detected. Hence one could use the +detection with a natural single condition. For example: + +`` + #include + #include + + int main() + { + if (BOOST_COMP_GNUC) + std::cout << "This is GNU GCC!" << std::endl; + else + std::cout << "Not GNU GCC." << std::endl; + return 0; + } +`` + +And since the predef's are preprocessor definitions the same is possible +from the preprocessor: + +`` + #include + #include + + #if BOOST_COMP_GNUC + #if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0) + const char * the_compiler = "GNU GCC, of at least version 4." + #else + const char * the_compiler = "GNU GCC, less than version 4." + #endif + #else + const char * the_compiler = "Not GNU GCC." + #endif + + int main() + { + std::cout << the_compiler << std::endl; + return 0; + } +`` + +In addition, for each version macro defined there is a +`*_AVAILABLE` macro defined only when the particular aspect is +detected. I.e. a definition equivalent to: + +`` + #if BOOST_PREDEF_ABC + #define BOOST_PREDEF_ABC_AVAILABLE + #endif +`` + +Also for each aspect there is a macro defined with a descriptive +name of what the detection is. + +[heading Using the `BOOST_VERSION_NUMBER` macro] + +All the predefs are defined to be a use of the `BOOST_VERSION_NUMBER` macro. +The macro takes individual major, minor, and patch value expressions: + +`` + #define BOOST_VERSION_NUMBER( major, minor, patch ) ... +`` + +The arguments are: + +# Major version number, as a constant value expression in the range [0,99]. +# Minor version number, as a constant value expression in the range [0,99]. +# Patch-level version number, as a constant value expression in the + range [0,99999]. + +The ranges for each are "enforced" by the use of a modulo ("%"), i.e. truncation, +as opposed to a clamp. And hence this means that the limits are enforced only +enough to keep from having out-of-range problems. But not enough to prevent +other kinds of problems. Like exceeding the range and getting false detections, +or non-detections. It is up to the individual predefs to ensure correct +usage beyond the range guarantee. + +The values for the arguments can be any preprocessor valid constant value expression. +Only constant value arithmetic is used in the definition of the `BOOST_VERSION_NUMBER` +macro and in any of the other predef macros. This means that any allowed base is +possible, i.e. binary, octal, decimal, and hexadecimal. For example: + +`` + #define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015) +`` + +Is equivalent to: + +`` + #define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13) +`` + +[endsect] + +[section Adding new predefs] + +We know that a library like this one will be an eternal work-in-progress. And +as such we expect, and look forward to, others contributing corrections and +additions to the predefs. With that in mind we need to keep a consistent way +of defining the new predefs. Hence all current, and future, predefs follow +the same structure and requirements. + +[heading Requirements of the header] + +All predefs need to follow a set of requirements: + +* The headers must use the Boost Software License. +* The predef must, by default, be defined as `BOOST_VERSION_NUMBER(0,0,0)`. +* The predef must be redefined to a non-zero value once detected. +* The predef must, by default, be defined to `BOOST_VERSION_NUMBER(0,0,1)` + when the predef is detected. +* If possible, the predef will be defined as the version number detected. +* The predef must define `*_AVAILABLE` macros. +* The predef must define a symbolic constant string name macro. +* The predef must declare itself, after being defined, for the testing + system. + +And there are some extra guidelines that predef headers should follow: + +* The detection should avoid including extra headers that might otherwise + not be included by default. +* If the detection must include a header, prefer guarding it within the + detection if possible. +* If the detection must include headers unconditionally, and has a choice + of headers to include, prefer the ones with the least impact. I.e. + include the one with the minimal set of definitions and other + dependencies. + +[heading Structure of the header] + +For general consistency it's suggested that new predef headers follow the +structure below, as current predef headers do. First we have the copyright +and license statement, followed by the include guard: + +`` +/* +Copyright Jane Doe YYYY +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_category_tag_H +#define BOOST_PREDEF_category_tag_H +`` + +Depending on how you are defining the predef you will at minimum have +to include the `version_number.h` header. But you might also want to +include the `make.h` header for the version number decomposing utility +macros: + +`` +#include +#include +`` + +The Predef library uses Quickbook for documentation and for the +individual predefs to appear in the reference section we add in-code +documentation followed by the zero-value default definition of the +predef macro. We strongly recommend this particular placement of the +documentation and default definition because some development +environments automatically interpret this and provide in-line help +for the macro. In particular this works for the popular Eclipse IDE: + +`` +/*` +[heading `BOOST_category_tag`] + +Documentation about what is detected. +*/ + +#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,0) +`` + +Next is the detection and definition of the particular predef. The +structure for this is to do a single overall check (`condition_a`) and +place further version detection inside this. The first action inside +the overall check is to "`#undef BOOST_category_tag`" which undefines +the zero-value default. The rest is up to the you how to do the checks +for defining the version. But at minimum it must +"`#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)`" as the fallback +to minimally indicate that the predef was detected: + +`` +#if (condition_a) +# undef BOOST_category_tag +# if (condition_b) +# define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch) +# else +# define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1) +# endif +#endif +`` + +We also need to provide the `*_AVAILABLE` versions of the predef. And +for convenience we also want to provide a `*_NAME` macro: + +`` +#if BOOST_category_tag +# define BOOST_category_tag_AVAILABLE +#endif + +#define BOOST_catagory_tag_NAME "Name" +`` + +The testing of the predef macros is automated to generate checks for all +the defined predefs, whether detected or not. To do this we need to +declare the predef to the test system. This declaration is empty for +regular use. And during the test programs they expand out specially +to create informational output: + +`` +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,BOOST_category_tag_NAME) +`` + +And, of course, we last need to close out the include guard: + +`` +#endif +`` + +[heading Using utility pattern macros] + +By including: + +`` +#include +`` + +One will get a set of utlity macros to decompose common version +macros as defined by compilers. For example the EDG compiler +uses a simple 3-digit version macro (M,N,P). It can be decomesed +and defined as: + +`` +#define BOOST_CCOMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__) +`` + +The decomposition macros are split into three types: decimal +decomposition, hexadecimal decomposition, and date decomposition. +They follow the format of using "N" for decimal, "F" for hexadecimal, +and "Y", "M", "D" for dates. + +[endsect] + +[def __predef_symbol__ Symbol] +[def __predef_version__ Version] +[def __predef_detection__ *detection*] + +[section Reference] + +[section `BOOST_ARCH` architecture macros] +[include ../include/boost/predef/architecture/*.h] +[include ../include/boost/predef/architecture/x86/*.h] +[endsect] + +[section `BOOST_COMP` compiler macros] +[include ../include/boost/predef/compiler/*.h] +[endsect] + +[section `BOOST_LANG` language standards macros] +[include ../include/boost/predef/language/*.h] +[endsect] + +[section `BOOST_LIB` library macros] +[include ../include/boost/predef/library/c/*.h] +[include ../include/boost/predef/library/std/*.h] +[endsect] + +[section `BOOST_OS` operating system macros] +[include ../include/boost/predef/os/*.h] +[include ../include/boost/predef/os/bsd/*.h] +[endsect] + +[section Other macros] +[include ../include/boost/predef/other/*.h] +[endsect] + +[section Version definition macros] +[include ../include/boost/predef/version_number.h] +[include ../include/boost/predef/make.h] +[endsect] + +[endsect] + +[section Acknoledgements] + +The comprehensiveness of this library would not be +possible without the existance of the indispensible +resource that is the +[@http://sourceforge.net/p/predef/ Pre-defined C/C++ Compiler Macros] +Project. It was, and continues to be, the primary source +of the definitions that make up this library. Thanks +to Bjorn Reese and all the volunteers that make that +resource possible. + +This library would be an incoherent mess if it weren't for +Boost community that provided invaluable feedback for the +eight years that it took to polish into a useable form. +In particular I would like to thank: Mathias Gaunard, +Robert Stewart, Joël Lamotte, Lars Viklund, Nathan Ridge, +Artyom Beilis, Joshua Boyce, Gottlob Frege, Thomas Heller, +Edward Diener, Dave Abrahams, Iain Denniston, Dan Price, +Ioannis Papadopoulos, and Robert Ramey. And thanks to +Joel Falcou for managing the review of this library. + +[endsect] \ No newline at end of file diff --git a/include/boost/predef/architecture.h b/include/boost/predef/architecture.h new file mode 100644 index 0000000..9eda25e --- /dev/null +++ b/include/boost/predef/architecture.h @@ -0,0 +1,30 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_H +#define BOOST_PREDEF_ARCHITECTURE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/*#include */ + +#endif diff --git a/include/boost/predef/architecture/alpha.h b/include/boost/predef/architecture/alpha.h new file mode 100644 index 0000000..7ccc480 --- /dev/null +++ b/include/boost/predef/architecture/alpha.h @@ -0,0 +1,60 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_ALPHA_H +#define BOOST_PREDEF_ARCHITECTURE_ALPHA_H + +#include +#include + +/*` +[heading `BOOST_ARCH_ALPHA`] + +[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + [[`__alpha__`] [__predef_detection__]] + [[`__alpha`] [__predef_detection__]] + [[`_M_ALPHA`] [__predef_detection__]] + + [[`__alpha_ev4__`] [4.0.0]] + [[`__alpha_ev5__`] [5.0.0]] + [[`__alpha_ev6__`] [6.0.0]] + ] + */ + +#define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__alpha__) || defined(__alpha) || \ + defined(_M_ALPHA) +# undef BOOST_ARCH_ALPHA +# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev4__) +# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev5__) +# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(5,0,0) +# endif +# if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev6__) +# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(6,0,0) +# endif +# if !defined(BOOST_ARCH_ALPHA) +# define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_ALPHA +# define BOOST_ARCH_ALPHA_AVAILABLE +#endif + +#define BOOST_ARCH_ALPHA_NAME "DEC Alpha" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ALPHA,BOOST_ARCH_ALPHA_NAME) + + +#endif diff --git a/include/boost/predef/architecture/arm.h b/include/boost/predef/architecture/arm.h new file mode 100644 index 0000000..b221a51 --- /dev/null +++ b/include/boost/predef/architecture/arm.h @@ -0,0 +1,58 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_ARM_H +#define BOOST_PREDEF_ARCHITECTURE_ARM_H + +#include +#include + +/*` +[heading `BOOST_ARCH_ARM`] + +[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__arm__`] [__predef_detection__]] + [[`__thumb__`] [__predef_detection__]] + [[`__TARGET_ARCH_ARM`] [__predef_detection__]] + [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] + + [[`__TARGET_ARCH_ARM`] [V.0.0]] + [[`__TARGET_ARCH_THUMB`] [V.0.0]] + ] + */ + +#define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__arm__) || defined(__thumb__) || \ + defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) +# undef BOOST_ARCH_ARM +# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_ARM +# define BOOST_ARCH_ARM_AVAILABLE +#endif + +#define BOOST_ARCH_ARM_NAME "ARM" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ARM,BOOST_ARCH_ARM_NAME) + + +#endif diff --git a/include/boost/predef/architecture/blackfin.h b/include/boost/predef/architecture/blackfin.h new file mode 100644 index 0000000..7b4f275 --- /dev/null +++ b/include/boost/predef/architecture/blackfin.h @@ -0,0 +1,47 @@ +/* +Copyright Redshift Software Inc 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H +#define BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H + +#include +#include + +/*` +[heading `BOOST_ARCH_BLACKFIN`] + +Blackfin Processors from Analog Devices. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__bfin__`] [__predef_detection__]] + [[`__BFIN__`] [__predef_detection__]] + [[`bfin`] [__predef_detection__]] + [[`BFIN`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__bfin__) || defined(__BFIN__) || \ + defined(bfin) || defined(BFIN) +# undef BOOST_ARCH_BLACKFIN +# define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_BLACKFIN +# define BOOST_ARCH_BLACKFIN_AVAILABLE +#endif + +#define BOOST_ARCH_BLACKFIN_NAME "Blackfin" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_BLACKFIN,BOOST_ARCH_BLACKFIN_NAME) + + +#endif diff --git a/include/boost/predef/architecture/convex.h b/include/boost/predef/architecture/convex.h new file mode 100644 index 0000000..fbb8e96 --- /dev/null +++ b/include/boost/predef/architecture/convex.h @@ -0,0 +1,67 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_CONVEX_H +#define BOOST_PREDEF_ARCHITECTURE_CONVEX_H + +#include +#include + +/*` +[heading `BOOST_ARCH_CONVEX`] + +[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__convex__`] [__predef_detection__]] + + [[`__convex_c1__`] [1.0.0]] + [[`__convex_c2__`] [2.0.0]] + [[`__convex_c32__`] [3.2.0]] + [[`__convex_c34__`] [3.4.0]] + [[`__convex_c38__`] [3.8.0]] + ] + */ + +#define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__convex__) +# undef BOOST_ARCH_CONVEX +# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c1__) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c2__) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c32__) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,2,0) +# endif +# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c34__) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,4,0) +# endif +# if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c38__) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,8,0) +# endif +# if !defined(BOOST_ARCH_CONVEX) +# define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_CONVEX +# define BOOST_ARCH_CONVEX_AVAILABLE +#endif + +#define BOOST_ARCH_CONVEX_NAME "Convex Computer" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_CONVEX,BOOST_ARCH_CONVEX_NAME) + + + +#endif diff --git a/include/boost/predef/architecture/ia64.h b/include/boost/predef/architecture/ia64.h new file mode 100644 index 0000000..918e27f --- /dev/null +++ b/include/boost/predef/architecture/ia64.h @@ -0,0 +1,49 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_IA64_H +#define BOOST_PREDEF_ARCHITECTURE_IA64_H + +#include +#include + +/*` +[heading `BOOST_ARCH_IA64`] + +[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ia64__`] [__predef_detection__]] + [[`_IA64`] [__predef_detection__]] + [[`__IA64__`] [__predef_detection__]] + [[`__ia64`] [__predef_detection__]] + [[`_M_IA64`] [__predef_detection__]] + [[`__itanium__`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ia64__) || defined(_IA64) || \ + defined(__IA64__) || defined(__ia64) || \ + defined(_M_IA64) || defined(__itanium__) +# undef BOOST_ARCH_IA64 +# define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_IA64 +# define BOOST_ARCH_IA64_AVAILABLE +#endif + +#define BOOST_ARCH_IA64_NAME "Intel Itanium 64" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_IA64,BOOST_ARCH_IA64_NAME) + +#endif diff --git a/include/boost/predef/architecture/m68k.h b/include/boost/predef/architecture/m68k.h new file mode 100644 index 0000000..2950c9a --- /dev/null +++ b/include/boost/predef/architecture/m68k.h @@ -0,0 +1,83 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_M68K_H +#define BOOST_PREDEF_ARCHITECTURE_M68K_H + +#include +#include + +/*` +[heading `BOOST_ARCH_M68K`] + +[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__m68k__`] [__predef_detection__]] + [[`M68000`] [__predef_detection__]] + + [[`__mc68060__`] [6.0.0]] + [[`mc68060`] [6.0.0]] + [[`__mc68060`] [6.0.0]] + [[`__mc68040__`] [4.0.0]] + [[`mc68040`] [4.0.0]] + [[`__mc68040`] [4.0.0]] + [[`__mc68030__`] [3.0.0]] + [[`mc68030`] [3.0.0]] + [[`__mc68030`] [3.0.0]] + [[`__mc68020__`] [2.0.0]] + [[`mc68020`] [2.0.0]] + [[`__mc68020`] [2.0.0]] + [[`__mc68010__`] [1.0.0]] + [[`mc68010`] [1.0.0]] + [[`__mc68010`] [1.0.0]] + [[`__mc68000__`] [0.0.1]] + [[`mc68000`] [0.0.1]] + [[`__mc68000`] [0.0.1]] + ] + */ + +#define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__m68k__) || defined(M68000) +# undef BOOST_ARCH_M68K +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(6,0,0) +# endif +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000)) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if !defined(BOOST_ARCH_M68K) +# define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_M68K +# define BOOST_ARCH_M68K_AVAILABLE +#endif + +#define BOOST_ARCH_M68K_NAME "Motorola 68k" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_M68K,BOOST_ARCH_M68K_NAME) + + +#endif diff --git a/include/boost/predef/architecture/mips.h b/include/boost/predef/architecture/mips.h new file mode 100644 index 0000000..b3d225c --- /dev/null +++ b/include/boost/predef/architecture/mips.h @@ -0,0 +1,74 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_MIPS_H +#define BOOST_PREDEF_ARCHITECTURE_MIPS_H + +#include +#include + +/*` +[heading `BOOST_ARCH_MIPS`] + +[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__mips__`] [__predef_detection__]] + [[`__mips`] [__predef_detection__]] + [[`__MIPS__`] [__predef_detection__]] + + [[`__mips`] [V.0.0]] + [[`_MIPS_ISA_MIPS1`] [1.0.0]] + [[`_R3000`] [1.0.0]] + [[`_MIPS_ISA_MIPS2`] [2.0.0]] + [[`__MIPS_ISA2__`] [2.0.0]] + [[`_R4000`] [2.0.0]] + [[`_MIPS_ISA_MIPS3`] [3.0.0]] + [[`__MIPS_ISA3__`] [3.0.0]] + [[`_MIPS_ISA_MIPS4`] [4.0.0]] + [[`__MIPS_ISA4__`] [4.0.0]] + ] + */ + +#define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__mips__) || defined(__mips) || \ + defined(__MIPS__) +# undef BOOST_ARCH_MIPS +# if !defined(BOOST_ARCH_MIPS) && (defined(__mips)) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(__mips,0,0) +# endif +# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000)) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000)) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__)) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__)) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_MIPS) +# define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_MIPS +# define BOOST_ARCH_MIPS_AVAILABLE +#endif + +#define BOOST_ARCH_MIPS_NAME "MIPS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_MIPS,BOOST_ARCH_MIPS_NAME) + + +#endif diff --git a/include/boost/predef/architecture/parisc.h b/include/boost/predef/architecture/parisc.h new file mode 100644 index 0000000..7370383 --- /dev/null +++ b/include/boost/predef/architecture/parisc.h @@ -0,0 +1,65 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_PARISC_H +#define BOOST_PREDEF_ARCHITECTURE_PARISC_H + +#include +#include + +/*` +[heading `BOOST_ARCH_PARISK`] + +[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__hppa__`] [__predef_detection__]] + [[`__hppa`] [__predef_detection__]] + [[`__HPPA__`] [__predef_detection__]] + + [[`_PA_RISC1_0`] [1.0.0]] + [[`_PA_RISC1_1`] [1.1.0]] + [[`__HPPA11__`] [1.1.0]] + [[`__PA7100__`] [1.1.0]] + [[`_PA_RISC2_0`] [2.0.0]] + [[`__RISC2_0__`] [2.0.0]] + [[`__HPPA20__`] [2.0.0]] + [[`__PA8000__`] [2.0.0]] + ] + */ + +#define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__) +# undef BOOST_ARCH_PARISC +# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_0)) +# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)) +# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,1,0) +# endif +# if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)) +# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_ARCH_PARISC) +# define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_PARISC +# define BOOST_ARCH_PARISC_AVAILABLE +#endif + +#define BOOST_ARCH_PARISC_NAME "HP/PA RISC" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PARISC,BOOST_ARCH_PARISC_NAME) + + +#endif diff --git a/include/boost/predef/architecture/ppc.h b/include/boost/predef/architecture/ppc.h new file mode 100644 index 0000000..8339ed2 --- /dev/null +++ b/include/boost/predef/architecture/ppc.h @@ -0,0 +1,73 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_PPC_H +#define BOOST_PREDEF_ARCHITECTURE_PPC_H + +#include +#include + +/*` +[heading `BOOST_ARCH_PPC`] + +[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__powerpc`] [__predef_detection__]] + [[`__powerpc__`] [__predef_detection__]] + [[`__POWERPC__`] [__predef_detection__]] + [[`__ppc__`] [__predef_detection__]] + [[`_M_PPC`] [__predef_detection__]] + [[`_ARCH_PPC`] [__predef_detection__]] + [[`__PPCGECKO__`] [__predef_detection__]] + [[`__PPCBROADWAY__`] [__predef_detection__]] + [[`_XENON`] [__predef_detection__]] + + [[`__ppc601__`] [6.1.0]] + [[`_ARCH_601`] [6.1.0]] + [[`__ppc603__`] [6.3.0]] + [[`_ARCH_603`] [6.3.0]] + [[`__ppc604__`] [6.4.0]] + [[`__ppc604__`] [6.4.0]] + ] + */ + +#define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__powerpc) || defined(__powerpc__) || \ + defined(__POWERPC__) || defined(__ppc__) || \ + defined(_M_PPC) || defined(_ARCH_PPC) || \ + defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \ + defined(_XENON) +# undef BOOST_ARCH_PPC +# if !defined (BOOST_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601)) +# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,1,0) +# endif +# if !defined (BOOST_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603)) +# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,3,0) +# endif +# if !defined (BOOST_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__)) +# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,4,0) +# endif +# if !defined (BOOST_ARCH_PPC) +# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_PPC +# define BOOST_ARCH_PPC_AVAILABLE +#endif + +#define BOOST_ARCH_PPC_NAME "PowerPC" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC,BOOST_ARCH_PPC_NAME) + + +#endif diff --git a/include/boost/predef/architecture/pyramid.h b/include/boost/predef/architecture/pyramid.h new file mode 100644 index 0000000..706e0cd --- /dev/null +++ b/include/boost/predef/architecture/pyramid.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_PYRAMID_H +#define BOOST_PREDEF_ARCHITECTURE_PYRAMID_H + +#include +#include + +/*` +[heading `BOOST_ARCH_PYRAMID`] + +Pyramid 9810 architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`pyr`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(pyr) +# undef BOOST_ARCH_PYRAMID +# define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_PYRAMID +# define BOOST_ARCH_PYRAMID_AVAILABLE +#endif + +#define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PYRAMID,BOOST_ARCH_PYRAMID_NAME) + + +#endif diff --git a/include/boost/predef/architecture/rs6k.h b/include/boost/predef/architecture/rs6k.h new file mode 100644 index 0000000..c05fefd --- /dev/null +++ b/include/boost/predef/architecture/rs6k.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_RS6K_H +#define BOOST_PREDEF_ARCHITECTURE_RS6K_H + +#include +#include + +/*` +[heading `BOOST_ARCH_RS6000`] + +[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__THW_RS6000`] [__predef_detection__]] + [[`_IBMR2`] [__predef_detection__]] + [[`_POWER`] [__predef_detection__]] + [[`_ARCH_PWR`] [__predef_detection__]] + [[`_ARCH_PWR2`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__THW_RS6000) || defined(_IBMR2) || \ + defined(_POWER) || defined(_ARCH_PWR) || \ + defined(_ARCH_PWR2) +# undef BOOST_ARCH_RS6000 +# define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_RS6000 +# define BOOST_ARCH_RS6000_AVAILABLE +#endif + +#define BOOST_ARCH_RS6000_NAME "RS/6000" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RS6000,BOOST_ARCH_RS6000_NAME) + +#define BOOST_ARCH_PWR BOOST_ARCH_RS6000 + +#if BOOST_ARCH_PWR +# define BOOST_ARCH_PWR_AVAILABLE +#endif + +#define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME + +#endif diff --git a/include/boost/predef/architecture/sparc.h b/include/boost/predef/architecture/sparc.h new file mode 100644 index 0000000..30207a0 --- /dev/null +++ b/include/boost/predef/architecture/sparc.h @@ -0,0 +1,55 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_SPARC_H +#define BOOST_PREDEF_ARCHITECTURE_SPARC_H + +#include +#include + +/*` +[heading `BOOST_ARCH_SPARC`] + +[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sparc__`] [__predef_detection__]] + [[`__sparc`] [__predef_detection__]] + + [[`__sparcv9`] [9.0.0]] + [[`__sparcv8`] [8.0.0]] + ] + */ + +#define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sparc__) || defined(__sparc) +# undef BOOST_ARCH_SPARC +# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv9) +# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0) +# endif +# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv8) +# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0) +# endif +# if !defined(BOOST_ARCH_SPARC) && +# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_SPARC +# define BOOST_ARCH_SPARC_AVAILABLE +#endif + +#define BOOST_ARCH_SPARC_NAME "SPARC" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SPARC,BOOST_ARCH_SPARC_NAME) + + +#endif diff --git a/include/boost/predef/architecture/superh.h b/include/boost/predef/architecture/superh.h new file mode 100644 index 0000000..f87f492 --- /dev/null +++ b/include/boost/predef/architecture/superh.h @@ -0,0 +1,68 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_SUPERH_H +#define BOOST_PREDEF_ARCHITECTURE_SUPERH_H + +#include +#include + +/*` +[heading `BOOST_ARCH_SH`] + +[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: +If available versions \[1-5\] are specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sh__`] [__predef_detection__]] + + [[`__SH5__`] [5.0.0]] + [[`__SH4__`] [4.0.0]] + [[`__sh3__`] [3.0.0]] + [[`__SH3__`] [3.0.0]] + [[`__sh2__`] [2.0.0]] + [[`__sh1__`] [1.0.0]] + ] + */ + +#define BOOST_ARCH_SH BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sh__) +# undef BOOST_ARCH_SH +# if !defined(BOOST_ARCH_SH) && (defined(__SH5__)) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(5,0,0) +# endif +# if !defined(BOOST_ARCH_SH) && (defined(__SH4__)) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_ARCH_SH) && (defined(__sh2__)) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_ARCH_SH) && (defined(__sh1__)) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_ARCH_SH) +# define BOOST_ARCH_SH BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_SH +# define BOOST_ARCH_SH_AVAILABLE +#endif + +#define BOOST_ARCH_SH_NAME "SuperH" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SH,BOOST_ARCH_SH_NAME) + + +#endif diff --git a/include/boost/predef/architecture/sys370.h b/include/boost/predef/architecture/sys370.h new file mode 100644 index 0000000..f2fba78 --- /dev/null +++ b/include/boost/predef/architecture/sys370.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_SYS370_H +#define BOOST_PREDEF_ARCHITECTURE_SYS370_H + +#include +#include + +/*` +[heading `BOOST_ARCH_SYS370`] + +[@http://en.wikipedia.org/wiki/System/370 System/370] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__370__`] [__predef_detection__]] + [[`__THW_370__`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__370__) || defined(__THW_370__) +# undef BOOST_ARCH_SYS370 +# define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_SYS370 +# define BOOST_ARCH_SYS370_AVAILABLE +#endif + +#define BOOST_ARCH_SYS370_NAME "System/370" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS370,BOOST_ARCH_SYS370_NAME) + + +#endif diff --git a/include/boost/predef/architecture/sys390.h b/include/boost/predef/architecture/sys390.h new file mode 100644 index 0000000..a9e03d9 --- /dev/null +++ b/include/boost/predef/architecture/sys390.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_SYS390_H +#define BOOST_PREDEF_ARCHITECTURE_SYS390_H + +#include +#include + +/*` +[heading `BOOST_ARCH_SYS390`] + +[@http://en.wikipedia.org/wiki/System/390 System/390] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__s390__`] [__predef_detection__]] + [[`__s390x__`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__s390__) || defined(__s390x__) +# undef BOOST_ARCH_SYS390 +# define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_SYS390 +# define BOOST_ARCH_SYS390_AVAILABLE +#endif + +#define BOOST_ARCH_SYS390_NAME "System/390" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS390,BOOST_ARCH_SYS390_NAME) + + +#endif diff --git a/include/boost/predef/architecture/x86.h b/include/boost/predef/architecture/x86.h new file mode 100644 index 0000000..3a08e9c --- /dev/null +++ b/include/boost/predef/architecture/x86.h @@ -0,0 +1,38 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H +#define BOOST_PREDEF_ARCHITECTURE_X86_H + +#include +#include + +/*` +[heading `BOOST_ARCH_X86`] + +[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is +a category to indicate that either `BOOST_ARCH_X86_32` or +`BOOST_ARCH_X86_64` is detected. + */ + +#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if BOOST_ARCH_X86_32 || BOOST_ARCH_X86_64 +# undef BOOST_ARCH_X86 +# define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_X86 +# define BOOST_ARCH_X86_AVAILABLE +#endif + +#define BOOST_ARCH_X86_NAME "Intel x86" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME) + +#endif diff --git a/include/boost/predef/architecture/x86/32.h b/include/boost/predef/architecture/x86/32.h new file mode 100644 index 0000000..131d94d --- /dev/null +++ b/include/boost/predef/architecture/x86/32.h @@ -0,0 +1,87 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H +#define BOOST_PREDEF_ARCHITECTURE_X86_32_H + +#include +#include + +/*` +[heading `BOOST_ARCH_X86_32`] + +[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: +If available versions \[3-6\] are specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`i386`] [__predef_detection__]] + [[`__i386__`] [__predef_detection__]] + [[`__i486__`] [__predef_detection__]] + [[`__i586__`] [__predef_detection__]] + [[`__i686__`] [__predef_detection__]] + [[`__i386`] [__predef_detection__]] + [[`_M_IX86`] [__predef_detection__]] + [[`_X86_`] [__predef_detection__]] + [[`__THW_INTEL__`] [__predef_detection__]] + [[`__I86__`] [__predef_detection__]] + [[`__INTEL__`] [__predef_detection__]] + + [[`__I86__`] [V.0.0]] + [[`_M_IX86`] [V.0.0]] + [[`__i686__`] [6.0.0]] + [[`__i586__`] [5.0.0]] + [[`__i486__`] [4.0.0]] + [[`__i386__`] [3.0.0]] + ] + */ + +#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(i386) || defined(__i386__) || \ + defined(__i486__) || defined(__i586__) || \ + defined(__i686__) || defined(__i386) || \ + defined(_M_IX86) || defined(_X86_) || \ + defined(__THW_INTEL__) || defined(__I86__) || \ + defined(__INTEL__) +# undef BOOST_ARCH_X86_32 +# if !defined(BOOST_ARCH_X86_32) && defined(__I86__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86) +# define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i686__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i586__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i486__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) && defined(__i386__) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_ARCH_X86_32) +# define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_ARCH_X86_32 +# define BOOST_ARCH_X86_32_AVAILABLE +#endif + +#define BOOST_ARCH_X86_32_NAME "Intel x86-32" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME) + +#include + +#endif diff --git a/include/boost/predef/architecture/x86/64.h b/include/boost/predef/architecture/x86/64.h new file mode 100644 index 0000000..0bee9c9 --- /dev/null +++ b/include/boost/predef/architecture/x86/64.h @@ -0,0 +1,50 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_X86_64_H +#define BOOST_PREDEF_ARCHITECTURE_X86_64_H + +#include +#include + +/*` +[heading `BOOST_ARCH_X86_64`] + +[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__x86_64`] [__predef_detection__]] + [[`__x86_64__`] [__predef_detection__]] + [[`__amd64__`] [__predef_detection__]] + [[`__amd64`] [__predef_detection__]] + [[`_M_X64`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__x86_64) || defined(__x86_64__) || \ + defined(__amd64__) || defined(__amd64) || \ + defined(_M_X64) +# undef BOOST_ARCH_X86_64 +# define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_X86_64 +# define BOOST_ARCH_X86_64_AVAILABLE +#endif + +#define BOOST_ARCH_X86_64_NAME "Intel x86-64" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME) + +#include + +#endif diff --git a/include/boost/predef/architecture/z.h b/include/boost/predef/architecture/z.h new file mode 100644 index 0000000..622d6ab --- /dev/null +++ b/include/boost/predef/architecture/z.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ARCHITECTURE_Z_H +#define BOOST_PREDEF_ARCHITECTURE_Z_H + +#include +#include + +/*` +[heading `BOOST_ARCH_Z`] + +[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SYSC_ZARCH__`] [__predef_detection__]] + ] + */ + +#define BOOST_ARCH_Z BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SYSC_ZARCH__) +# undef BOOST_ARCH_Z +# define BOOST_ARCH_Z BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_Z +# define BOOST_ARCH_Z_AVAILABLE +#endif + +#define BOOST_ARCH_Z_NAME "z/Architecture" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_Z,BOOST_ARCH_Z_NAME) + + +#endif diff --git a/include/boost/predef/compiler.h b/include/boost/predef/compiler.h new file mode 100644 index 0000000..e83f449 --- /dev/null +++ b/include/boost/predef/compiler.h @@ -0,0 +1,41 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_H +#define BOOST_PREDEF_COMPILER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/include/boost/predef/compiler/borland.h b/include/boost/predef/compiler/borland.h new file mode 100644 index 0000000..af9b527 --- /dev/null +++ b/include/boost/predef/compiler/borland.h @@ -0,0 +1,53 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_BORLAND_H +#define BOOST_PREDEF_COMPILER_BORLAND_H + +#include +#include + +/*` +[heading `BOOST_COMP_BORLAND`] + +[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__BORLANDC__`] [__predef_detection__]] + [[`__CODEGEARC__`] [__predef_detection__]] + + [[`__BORLANDC__`] [V.R.P]] + [[`__CODEGEARC__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_BORLAND BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__BORLANDC__) || defined(__CODEGEARC__) +# undef BOOST_COMP_BORLAND +# if !defined(BOOST_COMP_BORLAND) && (defined(__CODEGEARC__)) +# define BOOST_COMP_BORLAND BOOST_PREDEF_MAKE_0X_VVRP(__CODEGEARC__) +# endif +# if !defined(BOOST_COMP_BORLAND) +# define BOOST_COMP_BORLAND BOOST_PREDEF_MAKE_0X_VVRP(__BORLANDC__) +# endif +#endif + +#if BOOST_COMP_BORLAND +# define BOOST_COMP_BORLAND_AVAILABLE +#endif + +#define BOOST_COMP_BORLAND_NAME "Borland C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_BORLAND,BOOST_COMP_BORLAND_NAME) + + +#endif diff --git a/include/boost/predef/compiler/clang.h b/include/boost/predef/compiler/clang.h new file mode 100644 index 0000000..43f875c --- /dev/null +++ b/include/boost/predef/compiler/clang.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_CLANG_H +#define BOOST_PREDEF_COMPILER_CLANG_H + +#include +#include + +/*` +[heading `BOOST_COMP_CLANG`] + +[@http://en.wikipedia.org/wiki/Clang Clang] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__clang__`] [__predef_detection__]] + + [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_CLANG BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__clang__) +# undef BOOST_COMP_CLANG +# define BOOST_COMP_CLANG BOOST_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__) +#endif + +#if BOOST_COMP_CLANG +# define BOOST_COMP_CLANG_AVAILABLE +#endif + +#define BOOST_COMP_CLANG_NAME "Clang" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_CLANG,BOOST_COMP_CLANG_NAME) + + +#endif diff --git a/include/boost/predef/compiler/comeau.h b/include/boost/predef/compiler/comeau.h new file mode 100644 index 0000000..e56659e --- /dev/null +++ b/include/boost/predef/compiler/comeau.h @@ -0,0 +1,51 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_COMEAU_H +#define BOOST_PREDEF_COMPILER_COMEAU_H + +#include +#include + +#define BOOST_COMP_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE + +/*` +[heading `BOOST_COMP_COMO`] + +[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__COMO__`] [__predef_detection__]] + + [[`__COMO_VERSION__`] [V.R.P]] + ] + */ + +#if defined(__COMO__) +# undef BOOST_COMP_COMO +# if !defined(BOOST_COMP_COMO) && defined(__CONO_VERSION__) +# define BOOST_COMP_COMO BOOST_PREDEF_MAKE_0X_VRP(__COMO_VERSION__) +# endif +# if !defined(BOOST_COMP_COMO) +# define BOOST_COMP_COMO BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_COMO +# define BOOST_COMP_COMO_AVAILABLE +#endif + +#define BOOST_COMP_COMO_NAME "Comeau C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_COMO,BOOST_COMP_COMO_NAME) + + +#endif diff --git a/include/boost/predef/compiler/compaq.h b/include/boost/predef/compiler/compaq.h new file mode 100644 index 0000000..26888fd --- /dev/null +++ b/include/boost/predef/compiler/compaq.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_COMPAQ_H +#define BOOST_PREDEF_COMPILER_COMPAQ_H + +#include +#include + +/*` +[heading `BOOST_COMP_DEC`] + +[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DECCXX`] [__predef_detection__]] + [[`__DECC`] [__predef_detection__]] + + [[`__DECCXX_VER`] [V.R.P]] + [[`__DECC_VER`] [V.R.P]] + ] + */ + +#define BOOST_COMP_DEC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DECC) || defined(__DECCXX) +# undef BOOST_COMP_DEC +# if !defined(BOOST_COMP_DEC) && defined(__DECCXX_VER) +# define BOOST_COMP_DEC BOOST_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER) +# endif +# if !defined(BOOST_COMP_DEC) && defined(__DECC_VER) +# define BOOST_COMP_DEC BOOST_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER) +# endif +# if !defined(BOOST_COMP_DEC) +# define BOOST_COM_DEV BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_DEC +# define BOOST_COMP_DEC_AVAILABLE +#endif + +#define BOOST_COMP_DEC_NAME "Compaq C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DEC,BOOST_COMP_DEC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/diab.h b/include/boost/predef/compiler/diab.h new file mode 100644 index 0000000..365ba60 --- /dev/null +++ b/include/boost/predef/compiler/diab.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_DIAB_H +#define BOOST_PREDEF_COMPILER_DIAB_H + +#include +#include + +/*` +[heading `BOOST_COMP_DIAB`] + +[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DCC__`] [__predef_detection__]] + + [[`__VERSION_NUMBER__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_DIAB BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DCC__) +# undef BOOST_COMP_DIAB +# define BOOST_COMP_DIAB BOOST_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__) +#endif + +#if BOOST_COMP_DIAB +# define BOOST_COMP_DIAB_AVAILABLE +#endif + +#define BOOST_COMP_DIAB_NAME "Diab C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DIAB,BOOST_COMP_DIAB_NAME) + + +#endif diff --git a/include/boost/predef/compiler/digitalmars.h b/include/boost/predef/compiler/digitalmars.h new file mode 100644 index 0000000..f7e7d87 --- /dev/null +++ b/include/boost/predef/compiler/digitalmars.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_DIGITALMARS_H +#define BOOST_PREDEF_COMPILER_DIGITALMARS_H + +#include +#include + +/*` +[heading `BOOST_COMP_DMC`] + +[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DMC__`] [__predef_detection__]] + + [[`__DMC__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_DMC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DMC__) +# undef BOOST_COMP_DMC +# define BOOST_COMP_DMC BOOST_PREDEF_MAKE_0X_VRP(__DMC__) +#endif + +#if BOOST_COMP_DMC +# define BOOST_COMP_DMC_AVAILABLE +#endif + +#define BOOST_COMP_DMC_NAME "Digital Mars" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_DMC,BOOST_COMP_DMC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/dignus.h b/include/boost/predef/compiler/dignus.h new file mode 100644 index 0000000..218c577 --- /dev/null +++ b/include/boost/predef/compiler/dignus.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_DIGNUS_H +#define BOOST_PREDEF_COMPILER_DIGNUS_H + +#include +#include + +/*` +[heading `BOOST_COMP_SYSC`] + +[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SYSC__`] [__predef_detection__]] + + [[`__SYSC_VER__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_SYSC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SYSC__) +# undef BOOST_COMP_SYSC +# define BOOST_COMP_SYSC BOOST_PREDEF_MAKE_10_VRRPP(__SYSC_VER__) +#endif + +#if BOOST_COMP_SYSC +# define BOOST_COMP_SYSC_AVAILABLE +#endif + +#define BOOST_COMP_SYSC_NAME "Dignus Systems/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SYSC,BOOST_COMP_SYSC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/edg.h b/include/boost/predef/compiler/edg.h new file mode 100644 index 0000000..d73eedd --- /dev/null +++ b/include/boost/predef/compiler/edg.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_EDG_H +#define BOOST_PREDEF_COMPILER_EDG_H + +#include +#include + +/*` +[heading `BOOST_COMP_EDG`] + +[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__EDG__`] [__predef_detection__]] + + [[`__EDG_VERSION__`] [V.R.0]] + ] + */ + +#define BOOST_COMP_EDG BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__EDG__) +# undef BOOST_COMP_EDG +# define BOOST_COMP_EDG BOOST_PREDEF_MAKE_10_VRR(__EDG_VERSION__) +#endif + +#if BOOST_COMP_EDG +# define BOOST_COMP_EDG_AVAILABLE +#endif + +#define BOOST_COMP_EDG_NAME "EDG C++ Frontend" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_EDG,BOOST_COMP_EDG_NAME) + + +#endif diff --git a/include/boost/predef/compiler/ekopath.h b/include/boost/predef/compiler/ekopath.h new file mode 100644 index 0000000..72264fc --- /dev/null +++ b/include/boost/predef/compiler/ekopath.h @@ -0,0 +1,47 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_EKOPATH_H +#define BOOST_PREDEF_COMPILER_EKOPATH_H + +#include +#include + +/*` +[heading `BOOST_COMP_PATH`] + +[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__PATHCC__`] [__predef_detection__]] + + [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_PATH BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__PATHCC__) +# undef BOOST_COMP_PATH +# define BOOST_COMP_PATH \ + BOOST_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__) +#endif + +#if BOOST_COMP_PATH +# define BOOST_COMP_PATH_AVAILABLE +#endif + +#define BOOST_COMP_PATH_NAME "EKOpath" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PATH,BOOST_COMP_PATH_NAME) + + +#endif diff --git a/include/boost/predef/compiler/gcc.h b/include/boost/predef/compiler/gcc.h new file mode 100644 index 0000000..7182dc9 --- /dev/null +++ b/include/boost/predef/compiler/gcc.h @@ -0,0 +1,54 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_GCC_H +#define BOOST_PREDEF_COMPILER_GCC_H + +#include +#include + +/*` +[heading `BOOST_COMP_GNUC`] + +[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler. +Version number available as major, minor, and patch (if available). + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GNUC__`] [__predef_detection__]] + + [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]] + [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]] + ] + */ + +#define BOOST_COMP_GNUC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GNUC__) +# undef BOOST_COMP_GNUC +# if !defined(BOOST_COMP_GNUC) && defined(__GNUC_PATCHLEVEL__) +# define BOOST_COMP_GNUC \ + BOOST_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) +# endif +# if !defined(BOOST_COMP_GNUC) +# define BOOST_COMP_GNUC \ + BOOST_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0) +# endif +#endif + +#if BOOST_COMP_GNUC +# define BOOST_COMP_GNUC_AVAILABLE +#endif + +#define BOOST_COMP_GNUC_NAME "Gnu GCC C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GNUC,BOOST_COMP_GNUC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/gcc_xml.h b/include/boost/predef/compiler/gcc_xml.h new file mode 100644 index 0000000..d762c5d --- /dev/null +++ b/include/boost/predef/compiler/gcc_xml.h @@ -0,0 +1,42 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_GCC_XML_H +#define BOOST_PREDEF_COMPILER_GCC_XML_H + +#include +#include + +/*` +[heading `BOOST_COMP_GCCXML`] + +[@http://www.gccxml.org/ GCC XML] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GCCXML__`] [__predef_detection__]] + ] + */ + +#define BOOST_COMP_GCCXML BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GCCXML__) +# undef BOOST_COMP_GCCXML +# define BOOST_COMP_GCCXML BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_COMP_GCCXML +# define BOOST_COMP_GCCXML_AVAILABLE +#endif + +#define BOOST_COMP_GCCXML_NAME "GCC XML" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GCCXML,BOOST_COMP_GCCXML_NAME) + +#endif diff --git a/include/boost/predef/compiler/greenhills.h b/include/boost/predef/compiler/greenhills.h new file mode 100644 index 0000000..035eb0b --- /dev/null +++ b/include/boost/predef/compiler/greenhills.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_GREENHILLS_H +#define BOOST_PREDEF_COMPILER_GREENHILLS_H + +#include +#include + +/*` +[heading `BOOST_COMP_GHS`] + +[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ghs`] [__predef_detection__]] + [[`__ghs__`] [__predef_detection__]] + + [[`__GHS_VERSION_NUMBER__`] [V.R.P]] + [[`__ghs`] [V.R.P]] + ] + */ + +#define BOOST_COMP_GHS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ghs) || defined(__ghs__) +# undef BOOST_COMP_GHS +# if !defined(BOOST_COMP_GHS) && defined(__GHS_VERSION_NUMBER__) +# define BOOST_COMP_GHS BOOST_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__) +# endif +# if !defined(BOOST_COMP_GHS) && defined(__ghs) +# define BOOST_COMP_GHS BOOST_PREDEF_MAKE_10_VRP(__ghs) +# endif +# if !defined(BOOST_COMP_GHS) +# define BOOST_COMP_GHS BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_GHS +# define BOOST_COMP_GHS_AVAILABLE +#endif + +#define BOOST_COMP_GHS_NAME "Green Hills C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_GHS,BOOST_COMP_GHS_NAME) + + +#endif diff --git a/include/boost/predef/compiler/hp_acc.h b/include/boost/predef/compiler/hp_acc.h new file mode 100644 index 0000000..71581b9 --- /dev/null +++ b/include/boost/predef/compiler/hp_acc.h @@ -0,0 +1,51 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_HP_ACC_H +#define BOOST_PREDEF_COMPILER_HP_ACC_H + +#include +#include + +/*` +[heading `BOOST_COMP_HPACC`] + +HP aC++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__HP_aCC`] [__predef_detection__]] + + [[`__HP_aCC`] [V.R.P]] + ] + */ + +#define BOOST_COMP_HPACC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__HP_aCC) +# undef BOOST_COMP_HPACC +# if !defined(BOOST_COMP_HPACC) && (__HP_aCC > 1) +# define BOOST_COMP_HPACC BOOST_PREDEF_MAKE_10_VVRRPP(__HP_aCC) +# endif +# if !defined(BOOST_COMP_HPACC) +# define BOOST_COMP_HPACC BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_HPACC +# define BOOST_COMP_HPACC_AVAILABLE +#endif + +#define BOOST_COMP_HPACC_NAME "HP aC++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HPACC,BOOST_COMP_HPACC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/iar.h b/include/boost/predef/compiler/iar.h new file mode 100644 index 0000000..94e82d4 --- /dev/null +++ b/include/boost/predef/compiler/iar.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_IAR_H +#define BOOST_PREDEF_COMPILER_IAR_H + +#include +#include + +/*` +[heading `BOOST_COMP_IAR`] + +IAR C/C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]] + + [[`__VER__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_IAR BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IAR_SYSTEMS_ICC__) +# undef BOOST_COMP_IAR +# define BOOST_COMP_IAR BOOST_PREDEF_MAKE_10_VVRR(__VER__) +#endif + +#if BOOST_COMP_IAR +# define BOOST_COMP_IAR_AVAILABLE +#endif + +#define BOOST_COMP_IAR_NAME "IAR C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IAR,BOOST_COMP_IAR_NAME) + + +#endif diff --git a/include/boost/predef/compiler/ibm.h b/include/boost/predef/compiler/ibm.h new file mode 100644 index 0000000..ab0385b --- /dev/null +++ b/include/boost/predef/compiler/ibm.h @@ -0,0 +1,62 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_IBM_H +#define BOOST_PREDEF_COMPILER_IBM_H + +#include +#include + +/*` +[heading `BOOST_COMP_IBM`] + +[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IBMCPP__`] [__predef_detection__]] + [[`__xlC__`] [__predef_detection__]] + [[`__xlc__`] [__predef_detection__]] + + [[`__COMPILER_VER__`] [V.R.P]] + [[`__xlC__`] [V.R.P]] + [[`__xlc__`] [V.R.P]] + [[`__IBMCPP__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__) +# undef BOOST_COMP_IBM +# if !defined(BOOST_COMP_IBM) && defined(__COMPILER_VER__) +# define BOOST_COMP_IBM BOOST_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__) +# endif +# if !defined(BOOST_COMP_IBM) && defined(__xlC__) +# define BOOST_COMP_IBM BOOST_PREDEF_MAKE_0X_VVRR(__xlC__) +# endif +# if !defined(BOOST_COMP_IBM) && defined(__xlc__) +# define BOOST_COMP_IBM BOOST_PREDEF_MAKE_0X_VVRR(__xlc__) +# endif +# if !defined(BOOST_COMP_IBM) +# define BOOST_COMP_IBM BOOST_PREDEF_MAKE_10_VRP(__IBMCPP__) +# endif +#endif + +#if BOOST_COMP_IBM +# define BOOST_COMP_IBM_AVAILABLE +#endif + +#define BOOST_COMP_IBM_NAME "IBM XL C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_IBM,BOOST_COMP_IBM_NAME) + + +#endif diff --git a/include/boost/predef/compiler/intel.h b/include/boost/predef/compiler/intel.h new file mode 100644 index 0000000..471397a --- /dev/null +++ b/include/boost/predef/compiler/intel.h @@ -0,0 +1,55 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_INTEL_H +#define BOOST_PREDEF_COMPILER_INTEL_H + +#include +#include + +/*` +[heading `BOOST_COMP_INTEL`] + +[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__INTEL_COMPILER`] [__predef_detection__]] + [[`__ICL`] [__predef_detection__]] + [[`__ICC`] [__predef_detection__]] + [[`__ECC`] [__predef_detection__]] + + [[`__INTEL_COMPILER`] [V.R.P]] + ] + */ + +#define BOOST_COMP_INTEL BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \ + defined(__ECC) +# undef BOOST_COMP_INTEL +# if !defined(BOOST_COMP_INTEL) && defined(__INTEL_COMPILER) +# define BOOST_COMP_INTEL BOOST_PREDEF_MAKE_10_VRP(__INTEL_COMPILER) +# endif +# if !defined(BOOST_COMP_INTEL) +# define BOOST_COMP_INTEL BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_INTEL +# define BOOST_COMP_INTEL_AVAILABLE +#endif + +#define BOOST_COMP_INTEL_NAME "Intel C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_INTEL,BOOST_COMP_INTEL_NAME) + + +#endif diff --git a/include/boost/predef/compiler/kai.h b/include/boost/predef/compiler/kai.h new file mode 100644 index 0000000..002c310 --- /dev/null +++ b/include/boost/predef/compiler/kai.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_KAI_H +#define BOOST_PREDEF_COMPILER_KAI_H + +#include +#include + +/*` +[heading `BOOST_COMP_KCC`] + +Kai C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__KCC`] [__predef_detection__]] + + [[`__KCC_VERSION`] [V.R.P]] + ] + */ + +#define BOOST_COMP_KCC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__KCC) +# undef BOOST_COMP_KCC +# define BOOST_COMP_KCC BOOST_PREDEF_MAKE_0X_VRPP(__KCC_VERSION) +#endif + +#if BOOST_COMP_KCC +# define BOOST_COMP_KCC_AVAILABLE +#endif + +#define BOOST_COMP_KCC_NAME "Kai C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_KCC,BOOST_COMP_KCC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/llvm.h b/include/boost/predef/compiler/llvm.h new file mode 100644 index 0000000..51587c6 --- /dev/null +++ b/include/boost/predef/compiler/llvm.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_LLVM_H +#define BOOST_PREDEF_COMPILER_LLVM_H + +#include +#include + +/*` +[heading `BOOST_COMP_LLVM`] + +[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__llvm__`] [__predef_detection__]] + ] + */ + +#define BOOST_COMP_LLVM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__llvm__) +# undef BOOST_COMP_LLVM +# define BOOST_COMP_LLVM BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_COMP_LLVM +# define BOOST_COMP_LLVM_AVAILABLE +#endif + +#define BOOST_COMP_LLVM_NAME "LLVM" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_LLVM,BOOST_COMP_LLVM_NAME) + + +#endif diff --git a/include/boost/predef/compiler/metaware.h b/include/boost/predef/compiler/metaware.h new file mode 100644 index 0000000..61a555c --- /dev/null +++ b/include/boost/predef/compiler/metaware.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_METAWARE_H +#define BOOST_PREDEF_COMPILER_METAWARE_H + +#include +#include + +/*` +[heading `BOOST_COMP_HIGHC`] + +MetaWare High C/C++ compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__HIGHC__`] [__predef_detection__]] + ] + */ + +#define BOOST_COMP_HIGHC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__HIGHC__) +# undef BOOST_COMP_HIGHC +# define BOOST_COMP_HIGHC BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_COMP_HIGHC +# define BOOST_COMP_HIGHC_AVAILABLE +#endif + +#define BOOST_COMP_HIGHC_NAME "MetaWare High C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_HIGHC,BOOST_COMP_HIGHC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/metrowerks.h b/include/boost/predef/compiler/metrowerks.h new file mode 100644 index 0000000..e58c289 --- /dev/null +++ b/include/boost/predef/compiler/metrowerks.h @@ -0,0 +1,67 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_METROWERKS_H +#define BOOST_PREDEF_COMPILER_METROWERKS_H + +#include +#include + +/*` +[heading `BOOST_COMP_MWERKS`] + +[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MWERKS__`] [__predef_detection__]] + [[`__CWCC__`] [__predef_detection__]] + + [[`__CWCC__`] [V.R.P]] + [[`__MWERKS__`] [V.R.P >= 4.2.0]] + [[`__MWERKS__`] [9.R.0]] + [[`__MWERKS__`] [8.R.0]] + ] + */ + +#define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MWERKS__) || defined(__CWCC__) +# undef BOOST_COMP_MWERKS +# if !defined(BOOST_COMP_MWERKS) && defined(__CWCC__) +# define BOOST_COMP_MWERKS BOOST_PREDEF_MAKE_0X_VRPP(__CWCC__) +# endif +# if !defined(BOOST_COMP_MWERKS) && (__MWERKS__ >= 0x4200) +# define BOOST_COMP_MWERKS BOOST_PREDEF_MAKE_0X_VRPP(__MWERKS__) +# endif +# if !defined(BOOST_COMP_MWERKS) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3 +# define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100-1,0) +# endif +# if !defined(BOOST_COMP_MWERKS) && (__MWERKS__ >= 0x3200) +# define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100,0) +# endif +# if !defined(BOOST_COMP_MWERKS) && (__MWERKS__ >= 0x3000) +# define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER(8,(__MWERKS__)%100,0) +# endif +# if !defined(BOOST_COMP_MWERKS) +# define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_MWERKS +# define BOOST_COMP_MWERKS_AVAILABLE +#endif + +#define BOOST_COMP_MWERKS_NAME "Metrowerks CodeWarrior" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MWERKS,BOOST_COMP_MWERKS_NAME) + + +#endif diff --git a/include/boost/predef/compiler/microtec.h b/include/boost/predef/compiler/microtec.h new file mode 100644 index 0000000..3c31667 --- /dev/null +++ b/include/boost/predef/compiler/microtec.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_MICROTEC_H +#define BOOST_PREDEF_COMPILER_MICROTEC_H + +#include +#include + +/*` +[heading `BOOST_COMP_MRI`] + +[@http://www.mentor.com/microtec/ Microtec C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_MRI`] [__predef_detection__]] + ] + */ + +#define BOOST_COMP_MRI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_MRI) +# undef BOOST_COMP_MRI +# define BOOST_COMP_MRI BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_COMP_MRI +# define BOOST_COMP_MRI_AVAILABLE +#endif + +#define BOOST_COMP_MRI_NAME "Microtec C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MRI,BOOST_COMP_MRI_NAME) + + +#endif diff --git a/include/boost/predef/compiler/mpw.h b/include/boost/predef/compiler/mpw.h new file mode 100644 index 0000000..1c8113e --- /dev/null +++ b/include/boost/predef/compiler/mpw.h @@ -0,0 +1,53 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_MPW_H +#define BOOST_PREDEF_COMPILER_MPW_H + +#include +#include + +/*` +[heading `BOOST_COMP_MPW`] + +[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MRC__`] [__predef_detection__]] + [[`MPW_C`] [__predef_detection__]] + [[`MPW_CPLUS`] [__predef_detection__]] + + [[`__MRC__`] [V.R.0]] + ] + */ + +#define BOOST_COMP_MPW BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS) +# undef BOOST_COMP_MPW +# if !defined(BOOST_COMP_MPW) && defined(__MRC__) +# define BOOST_COMP_MPW BOOST_PREDEF_MAKE_0X_VVRR(__MRC__) +# endif +# if !defined(BOOST_COMP_MPW) +# define BOOST_COMP_MPW BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_MPW +# define BOOST_COMP_MPW_AVAILABLE +#endif + +#define BOOST_COMP_MPW_NAME "MPW C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MPW,BOOST_COMP_MPW_NAME) + + +#endif diff --git a/include/boost/predef/compiler/palm.h b/include/boost/predef/compiler/palm.h new file mode 100644 index 0000000..dec9c3b --- /dev/null +++ b/include/boost/predef/compiler/palm.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_PALM_H +#define BOOST_PREDEF_COMPILER_PALM_H + +#include +#include + +/*` +[heading `BOOST_COMP_PALM`] + +Palm C/C++ compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_PACC_VER`] [__predef_detection__]] + + [[`_PACC_VER`] [V.R.P]] + ] + */ + +#define BOOST_COMP_PALM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_PACC_VER) +# undef BOOST_COMP_PALM +# define BOOST_COMP_PALM BOOST_PREDEF_MAKE_0X_VRRPP000(_PACC_VER) +#endif + +#if BOOST_COMP_PALM +# define BOOST_COMP_PALM_AVAILABLE +#endif + +#define BOOST_COMP_PALM_NAME "Palm C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PALM,BOOST_COMP_PALM_NAME) + + +#endif diff --git a/include/boost/predef/compiler/pgi.h b/include/boost/predef/compiler/pgi.h new file mode 100644 index 0000000..963a5aa --- /dev/null +++ b/include/boost/predef/compiler/pgi.h @@ -0,0 +1,50 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_PGI_H +#define BOOST_PREDEF_COMPILER_PGI_H + +#include +#include + +/*` +[heading `BOOST_COMP_PGI`] + +[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__PGI`] [__predef_detection__]] + + [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_PGI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__PGI) +# undef BOOST_COMP_PGI +# if !defined(BOOST_COMP_PGI) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)) +# define BOOST_COMP_PGI BOOST_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__) +# endif +# if !defined(BOOST_COMP_PGI) +# define BOOST_COMP_PGI BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_PGI +# define BOOST_COMP_PGI_AVAILABLE +#endif + +#define BOOST_COMP_PGI_NAME "Portland Group C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_PGI,BOOST_COMP_PGI_NAME) + + +#endif diff --git a/include/boost/predef/compiler/sgi_mipspro.h b/include/boost/predef/compiler/sgi_mipspro.h new file mode 100644 index 0000000..1cc5833 --- /dev/null +++ b/include/boost/predef/compiler/sgi_mipspro.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H +#define BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H + +#include +#include + +/*` +[heading `BOOST_COMP_SGI`] + +[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sgi`] [__predef_detection__]] + [[`sgi`] [__predef_detection__]] + + [[`_SGI_COMPILER_VERSION`] [V.R.P]] + [[`_COMPILER_VERSION`] [V.R.P]] + ] + */ + +#define BOOST_COMP_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sgi) || defined(sgi) +# undef BOOST_COMP_SGI +# if !defined(BOOST_COMP_SGI) && defined(_SGI_COMPILER_VERSION) +# define BOOST_COMP_SGI BOOST_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION) +# endif +# if !defined(BOOST_COMP_SGI) && defined(_COMPILER_VERSION) +# define BOOST_COMP_SGI BOOST_PREDEF_MAKE_10_VRP(_COMPILER_VERSION) +# endif +# if !defined(BOOST_COMP_SGI) +# define BOOST_COMP_SGI BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_SGI +# define BOOST_COMP_SGI_AVAILABLE +#endif + +#define BOOST_COMP_SGI_NAME "SGI MIPSpro" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SGI,BOOST_COMP_SGI_NAME) + + +#endif diff --git a/include/boost/predef/compiler/sunpro.h b/include/boost/predef/compiler/sunpro.h new file mode 100644 index 0000000..140700a --- /dev/null +++ b/include/boost/predef/compiler/sunpro.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_SUNPRO_H +#define BOOST_PREDEF_COMPILER_SUNPRO_H + +#include +#include + +/*` +[heading `BOOST_COMP_SUNPRO`] + +[@http://en.wikipedia.org/wiki/Sun_Studio_%28software%29 Sun Studio] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SUNPRO_CC`] [__predef_detection__]] + [[`__SUNPRO_C`] [__predef_detection__]] + + [[`__SUNPRO_CC`] [V.R.P]] + [[`__SUNPRO_C`] [V.R.P]] + ] + */ + +#define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SUNPRO_CC) || defined(__SUNPRO_C) +# undef BOOST_COMP_SUNPRO +# if !defined(BOOST_COMP_SUNPRO) && defined(__SUNPRO_CC) +# define BOOST_COMP_SUNPRO BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_CC) +# endif +# if !defined(BOOST_COMP_SUNPRO) && defined(__SUNPRO_C) +# define BOOST_COMP_SUNPRO BOOST_PREDEF_MAKE_0X_VRP(__SUNPRO_C) +# endif +# if !defined(BOOST_COMP_SUNPRO) +# define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_COMP_SUNPRO +# define BOOST_COMP_SUNPRO_AVAILABLE +#endif + +#define BOOST_COMP_SUNPRO_NAME "Sun Studio" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_SUNPRO,BOOST_COMP_SUNPRO_NAME) + + +#endif diff --git a/include/boost/predef/compiler/tendra.h b/include/boost/predef/compiler/tendra.h new file mode 100644 index 0000000..227b1f7 --- /dev/null +++ b/include/boost/predef/compiler/tendra.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_TENDRA_H +#define BOOST_PREDEF_COMPILER_TENDRA_H + +#include +#include + +/*` +[heading `BOOST_COMP_TENDRA`] + +[@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__TenDRA__`] [__predef_detection__]] + ] + */ + +#define BOOST_COMP_TENDRA BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__TenDRA__) +# undef BOOST_COMP_TENDRA +# define BOOST_COMP_TENDRA BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_COMP_TENDRA +# define BOOST_COMP_TENDRA_AVAILABLE +#endif + +#define BOOST_COMP_TENDRA_NAME "TenDRA C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_TENDRA,BOOST_COMP_TENDRA_NAME) + + +#endif diff --git a/include/boost/predef/compiler/visualc.h b/include/boost/predef/compiler/visualc.h new file mode 100644 index 0000000..ccfdb83 --- /dev/null +++ b/include/boost/predef/compiler/visualc.h @@ -0,0 +1,64 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_VISUALC_H +#define BOOST_PREDEF_COMPILER_VISUALC_H + +#include +#include + +/*` +[heading `BOOST_COMP_MSVC`] + +[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_MSC_VER`] [__predef_detection__]] + + [[`_MSC_FULL_VER`] [V.R.P]] + [[`_MSC_VER`] [V.R.0]] + ] + */ + +#define BOOST_COMP_MSVC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_MSC_VER) +# undef BOOST_COMP_MSVC +# if !defined (_MSC_FULL_VER) +# define BOOST_COMP_MSVC_BUILD 0 +# else + /* how many digits does the build number have? */ +# if _MSC_FULL_VER / 10000 == _MSC_VER + /* four digits */ +# define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000) +# elif _MSC_FULL_VER / 100000 == _MSC_VER + /* five digits */ +# define BOOST_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000) +# else +# error "Cannot determine build number from _MSC_FULL_VER" +# endif +# endif +# define BOOST_COMP_MSVC BOOST_VERSION_NUMBER(\ + _MSC_VER/100-6,\ + _MSC_VER%100,\ + BOOST_COMP_MSVC_BUILD) +#endif + +#if BOOST_COMP_MSVC +# define BOOST_COMP_MSVC_AVAILABLE +#endif + +#define BOOST_COMP_MSVC_NAME "Microsoft Visual C/C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_MSVC,BOOST_COMP_MSVC_NAME) + + +#endif diff --git a/include/boost/predef/compiler/watcom.h b/include/boost/predef/compiler/watcom.h new file mode 100644 index 0000000..6233b22 --- /dev/null +++ b/include/boost/predef/compiler/watcom.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_WATCOM_H +#define BOOST_PREDEF_COMPILER_WATCOM_H + +#include +#include + +/*` +[heading `BOOST_COMP_WATCOM`] + +[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__WATCOMC__`] [__predef_detection__]] + + [[`__WATCOMC__`] [V.R.P]] + ] + */ + +#define BOOST_COMP_WATCOM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__WATCOMC__) +# undef BOOST_COMP_WATCOM +# define BOOST_COMP_WATCOM BOOST_PREDEF_MAKE_10_VVRR(__WATCOMC__) +#endif + +#if BOOST_COMP_WATCOM +# define BOOST_COMP_WATCOM_AVAILABLE +#endif + +#define BOOST_COMP_WATCOM_NAME "Watcom C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_WATCOM,BOOST_COMP_WATCOM_NAME) + + +#endif diff --git a/include/boost/predef/detail/_cassert.h b/include/boost/predef/detail/_cassert.h new file mode 100644 index 0000000..ca594a8 --- /dev/null +++ b/include/boost/predef/detail/_cassert.h @@ -0,0 +1,17 @@ +/* +Copyright Redshift Software, Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL__CASSERT_H +#define BOOST_PREDEF_DETAIL__CASSERT_H + +#if defined(__cpluplus) +#include +#else +#include +#endif + +#endif diff --git a/include/boost/predef/detail/_exception.h b/include/boost/predef/detail/_exception.h new file mode 100644 index 0000000..183dae7 --- /dev/null +++ b/include/boost/predef/detail/_exception.h @@ -0,0 +1,15 @@ +/* +Copyright Redshift Software, Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL__EXCEPTION_H +#define BOOST_PREDEF_DETAIL__EXCEPTION_H + +#if defined(__cpluplus) +#include +#endif + +#endif diff --git a/include/boost/predef/detail/endian_compat.h b/include/boost/predef/detail/endian_compat.h new file mode 100644 index 0000000..b253866 --- /dev/null +++ b/include/boost/predef/detail/endian_compat.h @@ -0,0 +1,26 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H +#define BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H + +#include + +#if BOOST_ENDIAN_BIG_BYTE +# define BOOST_BIG_ENDIAN +# define BOOST_BYTE_ORDER 4321 +#endif +#if BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_LITTLE_ENDIAN +# define BOOST_BYTE_ORDER 1234 +#endif +#if BOOST_ENDIAN_LITTLE_WORD +# define BOOST_PDP_ENDIAN +# define BOOST_BYTE_ORDER 2134 +#endif + +#endif diff --git a/include/boost/predef/detail/test.h b/include/boost/predef/detail/test.h new file mode 100644 index 0000000..c75eccc --- /dev/null +++ b/include/boost/predef/detail/test.h @@ -0,0 +1,17 @@ +/* +Copyright Redshift Software Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_DETAIL_TEST_H +#define BOOST_PREDEF_DETAIL_TEST_H + +#if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) + +#define BOOST_PREDEF_DECLARE_TEST(x,s) + +#endif + +#endif diff --git a/include/boost/predef/language.h b/include/boost/predef/language.h new file mode 100644 index 0000000..6fc0cd5 --- /dev/null +++ b/include/boost/predef/language.h @@ -0,0 +1,15 @@ +/* +Copyright Redshift Software Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LANGUAGE_H +#define BOOST_PREDEF_LANGUAGE_H + +#include +#include +#include + +#endif diff --git a/include/boost/predef/language/objc.h b/include/boost/predef/language/objc.h new file mode 100644 index 0000000..dd48290 --- /dev/null +++ b/include/boost/predef/language/objc.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software Inc. 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LANGUAGE_OBJC_H +#define BOOST_PREDEF_LANGUAGE_OBJC_H + +#include +#include + +/*` +[heading `BOOST_LANG_OBJC`] + +[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OBJC__`] [__predef_detection__]] + ] + */ + +#define BOOST_LANG_OBJC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__OBJC__) +# undef BOOST_LANG_OBJC +# define BOOST_LANG_OBJC BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_LANG_OBJC +# define BOOST_LANG_OBJC_AVAILABLE +#endif + +#define BOOST_LANG_OBJC_NAME "Objective-C" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_OBJC,BOOST_LANG_OBJC_NAME) + + +#endif diff --git a/include/boost/predef/language/stdc.h b/include/boost/predef/language/stdc.h new file mode 100644 index 0000000..2495d74 --- /dev/null +++ b/include/boost/predef/language/stdc.h @@ -0,0 +1,54 @@ +/* +Copyright Redshift Software Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LANGUAGE_STDC_H +#define BOOST_PREDEF_LANGUAGE_STDC_H + +#include +#include + +/*` +[heading `BOOST_LANG_STDC`] + +[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STDC__`] [__predef_detection__]] + + [[`__STDC_VERSION__`] [V.R.P]] + ] + */ + +#define BOOST_LANG_STDC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STDC__) +# undef BOOST_LANG_STDC +# if defined(__STDC_VERSION__) +# if (__STDC_VERSION__ > 100) +# define BOOST_LANG_STDC BOOST_PREDEF_MAKE_YYYYMM(__STDC_VERSION__) +# else +# define BOOST_LANG_STDC BOOST_VERSION_NUMBER_AVAILABLE +# endif +# else +# define BOOST_LANG_STDC BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LANG_STDC +# define BOOST_LANG_STDC_AVAILABLE +#endif + +#define BOOST_LANG_STDC_NAME "Standard C" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDC,BOOST_LANG_STDC_NAME) + + +#endif diff --git a/include/boost/predef/language/stdcpp.h b/include/boost/predef/language/stdcpp.h new file mode 100644 index 0000000..1ccb8e8 --- /dev/null +++ b/include/boost/predef/language/stdcpp.h @@ -0,0 +1,124 @@ +/* +Copyright Redshift Software Inc. 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LANGUAGE_STDCPP_H +#define BOOST_PREDEF_LANGUAGE_STDCPP_H + +#include +#include + +/*` +[heading `BOOST_LANG_STDCPP`] + +[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. +Because of the way the C++ standardization process works the +defined version year will not be the commonly known year of the standard. +Specifically the defined versions are: + +[table Detected Version Number vs. C++ Standard Year + [[Detected Version Number] [Standard Year] [C++ Standard]] + [[27.11.1] [1998] [ISO/IEC 14882:1998]] + [[41.12.1] [2011] [ISO/IEC 14882:2011]] +] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__cplusplus`] [__predef_detection__]] + + [[`__cplusplus`] [YYYY.MM.1]] + ] + */ + +#define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__cplusplus) +# undef BOOST_LANG_STDCPP +# if (__cplusplus > 100) +# define BOOST_LANG_STDCPP BOOST_PREDEF_MAKE_YYYYMM(__cplusplus) +# else +# define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LANG_STDCPP +# define BOOST_LANG_STDCPP_AVAILABLE +#endif + +#define BOOST_LANG_STDCPP_NAME "Standard C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPP,BOOST_LANG_STDCPP_NAME) + + +/*` +[heading `BOOST_LANG_STDCPPCLI`] + +[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. +If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__cplusplus_cli`] [__predef_detection__]] + + [[`__cplusplus_cli`] [YYYY.MM.1]] + ] + */ + +#define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__cplusplus_cli) +# undef BOOST_LANG_STDCPPCLI +# if (__cplusplus_cli > 100) +# define BOOST_LANG_STDCPPCLI BOOST_PREDEF_MAKE_YYYYMM(__cplusplus_cli) +# else +# define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LANG_STDCPPCLI +# define BOOST_LANG_STDCPPCLI_AVAILABLE +#endif + +#define BOOST_LANG_STDCPPCLI_NAME "Standard C++/CLI" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDCPPCLI,BOOST_LANG_STDCPPCLI_NAME) + + +/*` +[heading `BOOST_LANG_STDECPP`] + +[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__embedded_cplusplus`] [__predef_detection__]] + ] + */ + +#define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__embedded_cplusplus) +# undef BOOST_LANG_STDECPP +# define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_LANG_STDECPP +# define BOOST_LANG_STDECPP_AVAILABLE +#endif + +#define BOOST_LANG_STDECPP_NAME "Standard Embedded C++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_STDECPP,BOOST_LANG_STDECPP_NAME) + + +#endif diff --git a/include/boost/predef/library.h b/include/boost/predef/library.h new file mode 100644 index 0000000..8b29c05 --- /dev/null +++ b/include/boost/predef/library.h @@ -0,0 +1,14 @@ +/* +Copyright Redshift Software, Inc. 2008-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_H +#define BOOST_PREDEF_LIBRARY_H + +#include +#include + +#endif diff --git a/include/boost/predef/library/c.h b/include/boost/predef/library/c.h new file mode 100644 index 0000000..221e7dc --- /dev/null +++ b/include/boost/predef/library/c.h @@ -0,0 +1,18 @@ +/* +Copyright Redshift Software, Inc. 2008-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C_H +#define BOOST_PREDEF_LIBRARY_C_H + +#include + +#include +#include +#include +#include + +#endif diff --git a/include/boost/predef/library/c/_prefix.h b/include/boost/predef/library/c/_prefix.h new file mode 100644 index 0000000..754601f --- /dev/null +++ b/include/boost/predef/library/c/_prefix.h @@ -0,0 +1,13 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C__PREFIX_H +#define BOOST_PREDEF_LIBRARY_C__PREFIX_H + +#include + +#endif diff --git a/include/boost/predef/library/c/gnu.h b/include/boost/predef/library/c/gnu.h new file mode 100644 index 0000000..a2bdfce --- /dev/null +++ b/include/boost/predef/library/c/gnu.h @@ -0,0 +1,62 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C_GNU_H +#define BOOST_PREDEF_LIBRARY_C_GNU_H + +#include +#include + +#include + +#if defined(__STDC__) +#include +#elif defined(__cplusplus) +#include +#endif + +/*` +[heading `BOOST_LIB_C_GNU`] + +[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library. +Version number available as major, and minor. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GLIBC__`] [__predef_detection__]] + [[`__GNU_LIBRARY__`] [__predef_detection__]] + + [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]] + [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]] + ] + */ + +#define BOOST_LIB_C_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GLIBC__) || defined(__GNU_LIBRARY__) +# undef BOOST_LIB_C_GNU +# if defined(__GLIBC__) +# define BOOST_LIB_C_GNU \ + BOOST_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0) +# else +# define BOOST_LIB_C_GNU \ + BOOST_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0) +# endif +#endif + +#if BOOST_LIB_C_GNU +# define BOOST_LIB_C_GNU_AVAILABLE +#endif + +#define BOOST_LIB_C_GNU_NAME "GNU" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_GNU,BOOST_LIB_C_GNU_NAME) + + +#endif diff --git a/include/boost/predef/library/c/uc.h b/include/boost/predef/library/c/uc.h new file mode 100644 index 0000000..9b553a5 --- /dev/null +++ b/include/boost/predef/library/c/uc.h @@ -0,0 +1,48 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C_UC_H +#define BOOST_PREDEF_LIBRARY_C_UC_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_C_UC`] + +[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__UCLIBC__`] [__predef_detection__]] + + [[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]] + ] + */ + +#define BOOST_LIB_C_UC BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__UCLIBC__) +# undef BOOST_LIB_C_UC +# define BOOST_LIB_C_UC BOOST_VERSION_NUMBER(\ + __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__) +#endif + +#if BOOST_LIB_C_UC +# define BOOST_LIB_C_UC_AVAILABLE +#endif + +#define BOOST_LIB_C_UC_NAME "uClibc" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_UC,BOOST_LIB_C_UC_NAME) + + +#endif diff --git a/include/boost/predef/library/c/vms.h b/include/boost/predef/library/c/vms.h new file mode 100644 index 0000000..5243dee --- /dev/null +++ b/include/boost/predef/library/c/vms.h @@ -0,0 +1,48 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C_VMS_H +#define BOOST_PREDEF_LIBRARY_C_VMS_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_C_VMS`] + +VMS libc Standard C library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__CRTL_VER`] [__predef_detection__]] + + [[`__CRTL_VER`] [V.R.P]] + ] + */ + +#define BOOST_LIB_C_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__CRTL_VER) +# undef BOOST_LIB_C_VMS +# define BOOST_LIB_C_VMS BOOST_PREDEF_MAKE_10_VVRR0PP00(__CRTL_VER) +#endif + +#if BOOST_LIB_C_VMS +# define BOOST_LIB_C_VMS_AVAILABLE +#endif + +#define BOOST_LIB_C_VMS_NAME "VMS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_VMS,BOOST_LIB_C_VMS_NAME) + + +#endif diff --git a/include/boost/predef/library/c/zos.h b/include/boost/predef/library/c/zos.h new file mode 100644 index 0000000..c27f40d --- /dev/null +++ b/include/boost/predef/library/c/zos.h @@ -0,0 +1,57 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_C_ZOS_H +#define BOOST_PREDEF_LIBRARY_C_ZOS_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_C_ZOS`] + +z/OS libc Standard C library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__LIBREL__`] [__predef_detection__]] + + [[`__LIBREL__`] [V.R.P]] + [[`__TARGET_LIB__`] [V.R.P]] + ] + */ + +#define BOOST_LIB_C_ZOS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__LIBREL__) +# undef BOOST_LIB_C_ZOS +# if !defined(BOOST_LIB_C_ZOS) && defined(__LIBREL__) +# define BOOST_LIB_C_ZOS BOOST_PREDEF_MAKE_0X_VRRPPPP(__LIBREL__) +# endif +# if !defined(BOOST_LIB_C_ZOS) && defined(__TARGET_LIB__) +# define BOOST_LIB_C_ZOS BOOST_PREDEF_MAKE_0X_VRRPPPP(__TARGET_LIB__) +# endif +# if !defined(BOOST_LIB_C_ZOS) +# define BOOST_LIB_C_ZOS BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LIB_C_ZOS +# define BOOST_LIB_C_ZOS_AVAILABLE +#endif + +#define BOOST_LIB_C_ZOS_NAME "z/OS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_ZOS,BOOST_LIB_C_ZOS_NAME) + + +#endif diff --git a/include/boost/predef/library/std.h b/include/boost/predef/library/std.h new file mode 100644 index 0000000..003f960 --- /dev/null +++ b/include/boost/predef/library/std.h @@ -0,0 +1,23 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_PREDEF_LIBRARY_STD_H +#define BOOST_PREDEF_LIBRARY_STD_H + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/include/boost/predef/library/std/_prefix.h b/include/boost/predef/library/std/_prefix.h new file mode 100644 index 0000000..0c288e4 --- /dev/null +++ b/include/boost/predef/library/std/_prefix.h @@ -0,0 +1,23 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_PREDEF_LIBRARY_STD__PREFIX_H +#define BOOST_PREDEF_LIBRARY_STD__PREFIX_H + +/* +We need to include an STD header to gives us the context +of which library we are using. The "smallest" code-wise header +seems to be . Boost uses but as far +as I can tell (RR) it's not a stand-alone header in most +implementations. Using also has the benefit of +being available in EC++, so we get a chance to make this work +for embedded users. And since it's not a header impacted by TR1 +there's no magic needed for inclusion in the face of the +Boost.TR1 library. +*/ +#include + +#endif diff --git a/include/boost/predef/library/std/cxx.h b/include/boost/predef/library/std/cxx.h new file mode 100644 index 0000000..2ca4dc3 --- /dev/null +++ b/include/boost/predef/library/std/cxx.h @@ -0,0 +1,47 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_CXX_H +#define BOOST_PREDEF_LIBRARY_STD_CXX_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_CXX`] + +[@http://libcxx.llvm.org/ libc++] C++ Standard Library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_LIBCPP_VERSION`] [__predef_detection__]] + + [[`_LIBCPP_VERSION`] [V.0.P]] + ] + */ + +#define BOOST_LIB_STD_CXX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_LIBCPP_VERSION) +# undef BOOST_LIB_STD_CXX +# define BOOST_LIB_STD_CXX BOOST_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION) +#endif + +#if BOOST_LIB_STD_CXX +# define BOOST_LIB_STD_CXX_AVAILABLE +#endif + +#define BOOST_LIB_STD_CXX_NAME "libc++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_CXX,BOOST_LIB_STD_CXX_NAME) + + +#endif diff --git a/include/boost/predef/library/std/dinkumware.h b/include/boost/predef/library/std/dinkumware.h new file mode 100644 index 0000000..5357dad --- /dev/null +++ b/include/boost/predef/library/std/dinkumware.h @@ -0,0 +1,53 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H +#define BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_DINKUMWARE`] + +[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_YVALS`, `__IBMCPP__`] [__predef_detection__]] + [[`_CPPLIB_VER`] [__predef_detection__]] + + [[`_CPPLIB_VER`] [V.R.0]] + ] + */ + +#define BOOST_LIB_STD_DINKUMWARE BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) +# undef BOOST_LIB_STD_DINKUMWARE +# if defined(_CPPLIB_VER) +# define BOOST_LIB_STD_DINKUMWARE BOOST_PREDEF_MAKE_10_VVRR(_CPPLIB_VER) +# else +# define BOOST_LIB_STD_DINKUMWARE BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LIB_STD_DINKUMWARE +# define BOOST_LIB_STD_DINKUMWARE_AVAILABLE +#endif + +#define BOOST_LIB_STD_DINKUMWARE_NAME "Dinkumware" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_DINKUMWARE,BOOST_LIB_STD_DINKUMWARE_NAME) + + +#endif diff --git a/include/boost/predef/library/std/libcomo.h b/include/boost/predef/library/std/libcomo.h new file mode 100644 index 0000000..3c324ab --- /dev/null +++ b/include/boost/predef/library/std/libcomo.h @@ -0,0 +1,48 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H +#define BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_COMO`] + +[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library. +Version number available as major. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__LIBCOMO__`] [__predef_detection__]] + + [[`__LIBCOMO_VERSION__`] [V.0.0]] + ] + */ + +#define BOOST_LIB_STD_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__LIBCOMO__) +# undef BOOST_LIB_STD_COMO +# define BOOST_LIB_STD_COMO BOOST_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0) +#endif + +#if BOOST_LIB_STD_COMO +# define BOOST_LIB_STD_COMO_AVAILABLE +#endif + +#define BOOST_LIB_STD_COMO_NAME "Comeau Computing" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_COMO,BOOST_LIB_STD_COMO_NAME) + + +#endif diff --git a/include/boost/predef/library/std/modena.h b/include/boost/predef/library/std/modena.h new file mode 100644 index 0000000..b87f489 --- /dev/null +++ b/include/boost/predef/library/std/modena.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_MODENA_H +#define BOOST_PREDEF_LIBRARY_STD_MODENA_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_MSIPL`] + +[@http://modena.us/ Modena Software Lib++] Standard C++ Library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`MSIPL_COMPILE_H`] [__predef_detection__]] + [[`__MSIPL_COMPILE_H`] [__predef_detection__]] + ] + */ + +#define BOOST_LIB_STD_MSIPL BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H) +# undef BOOST_LIB_STD_MSIPL +# define BOOST_LIB_STD_MSIPL BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_LIB_STD_MSIPL +# define BOOST_LIB_STD_MSIPL_AVAILABLE +#endif + +#define BOOST_LIB_STD_MSIPL_NAME "Modena Software Lib++" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_MSIPL,BOOST_LIB_STD_MSIPL_NAME) + + +#endif diff --git a/include/boost/predef/library/std/msl.h b/include/boost/predef/library/std/msl.h new file mode 100644 index 0000000..b205b25 --- /dev/null +++ b/include/boost/predef/library/std/msl.h @@ -0,0 +1,54 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_MSL_H +#define BOOST_PREDEF_LIBRARY_STD_MSL_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_MSL`] + +[@http://www.freescale.com/ Metrowerks] Standard C++ Library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MSL_CPP__`] [__predef_detection__]] + [[`__MSL__`] [__predef_detection__]] + + [[`__MSL_CPP__`] [V.R.P]] + [[`__MSL__`] [V.R.P]] + ] + */ + +#define BOOST_LIB_STD_MSL BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MSL_CPP__) || defined(__MSL__) +# undef BOOST_LIB_STD_MSL +# if defined(__MSL_CPP__) +# define BOOST_LIB_STD_MSL BOOST_PREDEF_MAKE_0X_VRPP(__MSL_CPP__) +# else +# define BOOST_LIB_STD_MSL BOOST_PREDEF_MAKE_0X_VRPP(__MSL__) +# endif +#endif + +#if BOOST_LIB_STD_MSL +# define BOOST_LIB_STD_MSL_AVAILABLE +#endif + +#define BOOST_LIB_STD_MSL_NAME "Metrowerks" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_MSL,BOOST_LIB_STD_MSL_NAME) + + +#endif diff --git a/include/boost/predef/library/std/roguewave.h b/include/boost/predef/library/std/roguewave.h new file mode 100644 index 0000000..7ca1266 --- /dev/null +++ b/include/boost/predef/library/std/roguewave.h @@ -0,0 +1,57 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H +#define BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_RW`] + +[@http://stdcxx.apache.org/ Roguewave] Standard C++ library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STD_RWCOMPILER_H__`] [__predef_detection__]] + [[`_RWSTD_VER`] [__predef_detection__]] + + [[`_RWSTD_VER`] [V.R.P]] + ] + */ + +#define BOOST_LIB_STD_RW BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) +# undef BOOST_LIB_STD_RW +# if defined(_RWSTD_VER) +# if _RWSTD_VER < 0x010000 +# define BOOST_LIB_STD_RW BOOST_PREDEF_MAKE_0X_VVRRP(_RWSTD_VER) +# else +# define BOOST_LIB_STD_RW BOOST_PREDEF_MAKE_0X_VVRRPP(_RWSTD_VER) +# endif +# else +# define BOOST_LIB_STD_RW BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LIB_STD_RW +# define BOOST_LIB_STD_RW_AVAILABLE +#endif + +#define BOOST_LIB_STD_RW_NAME "Roguewave" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_RW,BOOST_LIB_STD_RW_NAME) + + +#endif diff --git a/include/boost/predef/library/std/sgi.h b/include/boost/predef/library/std/sgi.h new file mode 100644 index 0000000..b8e7807 --- /dev/null +++ b/include/boost/predef/library/std/sgi.h @@ -0,0 +1,52 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_SGI_H +#define BOOST_PREDEF_LIBRARY_STD_SGI_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_SGI`] + +[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library. +If available version number as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__STL_CONFIG_H`] [__predef_detection__]] + + [[`__SGI_STL`] [V.R.P]] + ] + */ + +#define BOOST_LIB_STD_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__STL_CONFIG_H) +# undef BOOST_LIB_STD_SGI +# if defined(__SGI_STL) +# define BOOST_LIB_STD_SGI BOOST_PREDEF_MAKE_0X_VRP(__SGI_STL) +# else +# define BOOST_LIB_STD_SGI BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_LIB_STD_SGI +# define BOOST_LIB_STD_SGI_AVAILABLE +#endif + +#define BOOST_LIB_STD_SGI_NAME "SGI" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_SGI,BOOST_LIB_STD_SGI_NAME) + + +#endif diff --git a/include/boost/predef/library/std/stdcpp3.h b/include/boost/predef/library/std/stdcpp3.h new file mode 100644 index 0000000..cab5644 --- /dev/null +++ b/include/boost/predef/library/std/stdcpp3.h @@ -0,0 +1,54 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_STDCPP3_H +#define BOOST_PREDEF_LIBRARY_STD_STDCPP3_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_GNU`] + +[@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library. +Version number available as year (from 1970), month, and day. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__GLIBCXX__`] [__predef_detection__]] + [[`__GLIBCPP__`] [__predef_detection__]] + + [[`__GLIBCXX__`] [V.R.P]] + [[`__GLIBCPP__`] [V.R.P]] + ] + */ + +#define BOOST_LIB_STD_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__GLIBCPP__) || defined(__GLIBCXX__) +# undef BOOST_LIB_STD_GNU +# if defined(__GLIBCXX__) +# define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__) +# else +# define BOOST_LIB_STD_GNU BOOST_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__) +# endif +#endif + +#if BOOST_LIB_STD_GNU +# define BOOST_LIB_STD_GNU_AVAILABLE +#endif + +#define BOOST_LIB_STD_GNU_NAME "GNU" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_GNU,BOOST_LIB_STD_GNU_NAME) + + +#endif diff --git a/include/boost/predef/library/std/stlport.h b/include/boost/predef/library/std/stlport.h new file mode 100644 index 0000000..eba82bc --- /dev/null +++ b/include/boost/predef/library/std/stlport.h @@ -0,0 +1,60 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_STLPORT_H +#define BOOST_PREDEF_LIBRARY_STD_STLPORT_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_STLPORT`] + +[@http://sourceforge.net/projects/stlport/ STLport Standard C++] library. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__SGI_STL_PORT`] [__predef_detection__]] + [[`_STLPORT_VERSION`] [__predef_detection__]] + + [[`_STLPORT_MAJOR`, `_STLPORT_MINOR`, `_STLPORT_PATCHLEVEL`] [V.R.P]] + [[`_STLPORT_VERSION`] [V.R.P]] + [[`__SGI_STL_PORT`] [V.R.P]] + ] + */ + +#define BOOST_LIB_STD_STLPORT BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) +# undef BOOST_LIB_STD_STLPORT +# if !defined(BOOST_LIB_STD_STLPORT) && defined(_STLPORT_MAJOR) +# define BOOST_LIB_STD_STLPORT \ + BOOST_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL) +# endif +# if !defined(BOOST_LIB_STD_STLPORT) && defined(_STLPORT_VERSION) +# define BOOST_LIB_STD_STLPORT BOOST_PREDEF_MAKE_0X_VRP(_STLPORT_VERSION) +# endif +# if !defined(BOOST_LIB_STD_STLPORT) +# define BOOST_LIB_STD_STLPORT BOOST_PREDEF_MAKE_0X_VRP(__SGI_STL_PORT) +# endif +#endif + +#if BOOST_LIB_STD_STLPORT +# define BOOST_LIB_STD_STLPORT_AVAILABLE +#endif + +#define BOOST_LIB_STD_STLPORT_NAME "STLport" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_STLPORT,BOOST_LIB_STD_STLPORT_NAME) + + +#endif diff --git a/include/boost/predef/library/std/vacpp.h b/include/boost/predef/library/std/vacpp.h new file mode 100644 index 0000000..eb11572 --- /dev/null +++ b/include/boost/predef/library/std/vacpp.h @@ -0,0 +1,45 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_LIBRARY_STD_VACPP_H +#define BOOST_PREDEF_LIBRARY_STD_VACPP_H + +#include + +#include +#include + +/*` +[heading `BOOST_LIB_STD_IBM`] + +[@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__IBMCPP__`] [__predef_detection__]] + ] + */ + +#define BOOST_LIB_STD_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__IBMCPP__) +# undef BOOST_LIB_STD_IBM +# define BOOST_LIB_STD_IBM BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_LIB_STD_IBM +# define BOOST_LIB_STD_IBM_AVAILABLE +#endif + +#define BOOST_LIB_STD_IBM_NAME "IBM VACPP" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_STD_IBM,BOOST_LIB_STD_IBM_NAME) + + +#endif diff --git a/include/boost/predef/make.h b/include/boost/predef/make.h new file mode 100644 index 0000000..ccee24a --- /dev/null +++ b/include/boost/predef/make.h @@ -0,0 +1,87 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include + +#ifndef BOOST_PREDEF_MAKE_H +#define BOOST_PREDEF_MAKE_H + +/* +Shorthands for the common version number formats used by vendors... +*/ + +/*` +[heading `BOOST_PREDEF_MAKE_..` macros] + +These set of macros decompose common vendor version number +macros which are composed version, revision, and patch digits. +The naming convention indicates: + +* The base of the specified version number. "`BOOST_PREDEF_MAKE_0X`" for + hexadecimal digits, and "`BOOST_PREDEF_MAKE_10`" for decimal digits. +* The format of the vendor version number. Where "`V`" indicates the version digits, + "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`" + indicates an ignored digit. + +Macros are: +*/ +/*` `BOOST_PREDEF_MAKE_0X_VRP(V)` */ +#define BOOST_PREDEF_MAKE_0X_VRP(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF)) +/*` `BOOST_PREDEF_MAKE_0X_VVRP(V)` */ +#define BOOST_PREDEF_MAKE_0X_VVRP(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF)) +/*` `BOOST_PREDEF_MAKE_0X_VRPP(V)` */ +#define BOOST_PREDEF_MAKE_0X_VRPP(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF)) +/*` `BOOST_PREDEF_MAKE_0X_VVRR(V)` */ +#define BOOST_PREDEF_MAKE_0X_VVRR(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0) +/*` `BOOST_PREDEF_MAKE_0X_VRRPPPP(V)` */ +#define BOOST_PREDEF_MAKE_0X_VRRPPPP(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF)) +/*` `BOOST_PREDEF_MAKE_0X_VVRRP(V)` */ +#define BOOST_PREDEF_MAKE_0X_VVRRP(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF)) +/*` `BOOST_PREDEF_MAKE_0X_VRRPP000(V)` */ +#define BOOST_PREDEF_MAKE_0X_VRRPP000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12) +/*` `BOOST_PREDEF_MAKE_10_VPPP(V)` */ +#define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000) +/*` `BOOST_PREDEF_MAKE_10_VRP(V)` */ +#define BOOST_PREDEF_MAKE_10_VRP(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10) +/*` `BOOST_PREDEF_MAKE_10_VRP000(V)` */ +#define BOOST_PREDEF_MAKE_10_VRP000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10) +/*` `BOOST_PREDEF_MAKE_10_VRPP(V)` */ +#define BOOST_PREDEF_MAKE_10_VRPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100) +/*` `BOOST_PREDEF_MAKE_10_VRR(V)` */ +#define BOOST_PREDEF_MAKE_10_VRR(V) BOOST_VERSION_NUMBER(((V)/100)%10,(V)%100,0) +/*` `BOOST_PREDEF_MAKE_10_VRRPP(V)` */ +#define BOOST_PREDEF_MAKE_10_VRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100) +/*` `BOOST_PREDEF_MAKE_10_VRR000(V)` */ +#define BOOST_PREDEF_MAKE_10_VRR000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0) +/*` `BOOST_PREDEF_MAKE_10_VV00(V)` */ +#define BOOST_PREDEF_MAKE_10_VV00(V) BOOST_VERSION_NUMBER(((V)/100)%100,0,0) +/*` `BOOST_PREDEF_MAKE_10_VVRR(V)` */ +#define BOOST_PREDEF_MAKE_10_VVRR(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0) +/*` `BOOST_PREDEF_MAKE_10_VVRRPP(V)` */ +#define BOOST_PREDEF_MAKE_10_VVRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100) +/*` `BOOST_PREDEF_MAKE_10_VVRR0PP00(V)` */ +#define BOOST_PREDEF_MAKE_10_VVRR0PP00(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100) +/*` `BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)` */ +#define BOOST_PREDEF_MAKE_10_VVRR0PPPP(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000) +/*` `BOOST_PREDEF_MAKE_10_VVRR00PP00(V)` */ +#define BOOST_PREDEF_MAKE_10_VVRR00PP00(V) BOOST_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100) +/*` +[heading `BOOST_PREDEF_MAKE_*..` date macros] + +Date decomposition macros return a date in the relative to the 1970 +Epoch date. If the month is not available, January 1st is used as the month and day. +If the day is not available, but the month is, the 1st of the month is used as the day. +*/ +/*` `BOOST_PREDEF_MAKE_DATE(Y,M,D)` */ +#define BOOST_PREDEF_MAKE_DATE(Y,M,D) BOOST_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100) +/*` `BOOST_PREDEF_MAKE_YYYYMMDD(V)` */ +#define BOOST_PREDEF_MAKE_YYYYMMDD(V) BOOST_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100) +/*` `BOOST_PREDEF_MAKE_YYYY(V)` */ +#define BOOST_PREDEF_MAKE_YYYY(V) BOOST_PREDEF_MAKE_DATE(V,1,1) +/*` `BOOST_PREDEF_MAKE_YYYYMM(V)` */ +#define BOOST_PREDEF_MAKE_YYYYMM(V) BOOST_PREDEF_MAKE_DATE((V)/100,(V),1) + +#endif diff --git a/include/boost/predef/os.h b/include/boost/predef/os.h new file mode 100644 index 0000000..942fee6 --- /dev/null +++ b/include/boost/predef/os.h @@ -0,0 +1,28 @@ +/* +Copyright Redshift Software, Inc. 2008-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_H +#define BOOST_PREDEF_OS_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif diff --git a/include/boost/predef/os/aix.h b/include/boost/predef/os/aix.h new file mode 100644 index 0000000..bc29c1d --- /dev/null +++ b/include/boost/predef/os/aix.h @@ -0,0 +1,64 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_AIX_H +#define BOOST_PREDEF_OS_AIX_H + +#include +#include + +/*` +[heading `BOOST_OS_AIX`] + +[@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_AIX`] [__predef_detection__]] + [[`__TOS_AIX__`] [__predef_detection__]] + + [[`_AIX43`] [4.3.0]] + [[`_AIX41`] [4.1.0]] + [[`_AIX32`] [3.2.0]] + [[`_AIX3`] [3.0.0]] + ] + */ + +#define BOOST_OS_AIX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_AIX) || defined(__TOS_AIX__) +# undef BOOST_OS_AIX +# if !defined(BOOST_OS_AIX) && defined(_AIX43) +# define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,3,0) +# endif +# if !defined(BOOST_OS_AIX) && defined(_AIX41) +# define BOOST_OS_AIX BOOST_VERSION_NUMBER(4,1,0) +# endif +# if !defined(BOOST_OS_AIX) && defined(_AIX32) +# define BOOST_OS_AIX BOOST_VERSION_NUMBER(3,2,0) +# endif +# if !defined(BOOST_OS_AIX) && defined(_AIX3) +# define BOOST_OS_AIX BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_OS_AIX) +# define BOOST_OS_AIX BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_AIX +# define BOOST_OS_AIX_AVAILABLE +#endif + +#define BOOST_OS_AIX_NAME "IBM AIX" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,BOOST_OS_AIX_NAME) + + +#endif diff --git a/include/boost/predef/os/amigaos.h b/include/boost/predef/os/amigaos.h new file mode 100644 index 0000000..41a29f9 --- /dev/null +++ b/include/boost/predef/os/amigaos.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_AMIGAOS_H +#define BOOST_PREDEF_OS_AMIGAOS_H + +#include +#include + +/*` +[heading `BOOST_OS_AMIGAOS`] + +[@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`AMIGA`] [__predef_detection__]] + [[`__amigaos__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(AMIGA) || defined(__amigaos__) +# undef BOOST_OS_AMIGAOS +# define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_AMIGAOS +# define BOOST_OS_AMIGAOS_AVAILABLE +#endif + +#define BOOST_OS_AMIGAOS_NAME "AmigaOS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,BOOST_OS_AMIGAOS_NAME) + + +#endif diff --git a/include/boost/predef/os/android.h b/include/boost/predef/os/android.h new file mode 100644 index 0000000..b026abc --- /dev/null +++ b/include/boost/predef/os/android.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_ADROID_H +#define BOOST_PREDEF_OS_ADROID_H + +#include +#include + +/*` +[heading `BOOST_OS_ANDROID`] + +[@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ANDROID__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ANDROID__) +# undef BOOST_OS_ANDROID +# define BOOST_OS_ANDROID BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_ANDROID +# define BOOST_OS_ANDROID_AVAILABLE +#endif + +#define BOOST_OS_ANDROID_NAME "Android" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_ANDROID,BOOST_OS_ANDROID_NAME) + + +#endif diff --git a/include/boost/predef/os/beos.h b/include/boost/predef/os/beos.h new file mode 100644 index 0000000..a0a82ff --- /dev/null +++ b/include/boost/predef/os/beos.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BEOS_H +#define BOOST_PREDEF_OS_BEOS_H + +#include +#include + +/*` +[heading `BOOST_OS_BEOS`] + +[@http://en.wikipedia.org/wiki/BeOS BeOS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__BEOS__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_BEOS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__BEOS__) +# undef BOOST_OS_BEOS +# define BOOST_OS_BEOS BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_BEOS +# define BOOST_OS_BEOS_AVAILABLE +#endif + +#define BOOST_OS_BEOS_NAME "BeOS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,BOOST_OS_BEOS_NAME) + + +#endif diff --git a/include/boost/predef/os/bsd.h b/include/boost/predef/os/bsd.h new file mode 100644 index 0000000..28a187e --- /dev/null +++ b/include/boost/predef/os/bsd.h @@ -0,0 +1,83 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_H +#define BOOST_PREDEF_OS_BSD_H + +#include +#include + +/*` +[heading `BOOST_OS_BSD`] + +[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. + +BSD has various branch operating systems possible and each detected +individually. This detects the following variations and sets a specific +version number macro to match: + +* `BOOST_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] +* `BOOST_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] +* `BOOST_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] +* `BOOST_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] +* `BOOST_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] + +[note The general `BOOST_OS_BSD` is set in all cases to indicate some form +of BSD. If the above variants is detected the corresponding macro is also set.] + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`BSD`] [__predef_detection__]] + [[`_SYSTYPE_BSD`] [__predef_detection__]] + + [[`BSD4_2`] [4.2.0]] + [[`BSD4_3`] [4.3.0]] + [[`BSD4_4`] [4.4.0]] + [[`BSD`] [V.R.0]] + ] + */ + +#define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(BSD) || \ + defined(_SYSTYPE_BSD) +# undef BOOST_OS_BSD +# include +# if !defined(BOOST_OS_BSD) && defined(BSD4_2) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0) +# endif +# if !defined(BOOST_OS_BSD) && defined(BSD4_3) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0) +# endif +# if !defined(BOOST_OS_BSD) && defined(BSD4_4) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0) +# endif +# if !defined(BOOST_OS_BSD) && defined(BSD) +# define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD) +# endif +# if !defined(BOOST_OS_BSD) +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_BSD +# define BOOST_OS_BSD_AVAILABLE +#endif + +#define BOOST_OS_BSD_NAME "BSD" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) + +#include +#include +#include +#include +#include + +#endif diff --git a/include/boost/predef/os/bsd/bsdi.h b/include/boost/predef/os/bsd/bsdi.h new file mode 100644 index 0000000..3d53ca6 --- /dev/null +++ b/include/boost/predef/os/bsd/bsdi.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2012-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_BSDI_H +#define BOOST_PREDEF_OS_BSD_BSDI_H + +#include + +/*` +[heading `BOOST_OS_BSD_BSDI`] + +[@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__bsdi__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__bsdi__) +# ifndef BOOST_OS_BSD +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# undef BOOST_OS_BSD_BSDI +# define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_BSD_BSDI +# define BOOST_OS_BSD_BSDI_AVAILABLE +#endif + +#define BOOST_OS_BSD_BSDI_NAME "BSDi BSD/OS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_BSDI,BOOST_OS_BSD_BSDI_NAME) + +#endif diff --git a/include/boost/predef/os/bsd/dragonfly.h b/include/boost/predef/os/bsd/dragonfly.h new file mode 100644 index 0000000..dfa0b28 --- /dev/null +++ b/include/boost/predef/os/bsd/dragonfly.h @@ -0,0 +1,46 @@ +/* +Copyright Redshift Software, Inc. 2012-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_DRAGONFLY_H +#define BOOST_PREDEF_OS_BSD_DRAGONFLY_H + +#include + +/*` +[heading `BOOST_OS_BSD_DRAGONFLY`] + +[@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__DragonFly__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__DragonFly__) +# ifndef BOOST_OS_BSD +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# undef BOOST_OS_BSD_DRAGONFLY +# if defined(__DragonFly__) +# define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_BSD_DRAGONFLY +# define BOOST_OS_BSD_DRAGONFLY_AVAILABLE +#endif + +#define BOOST_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_DRAGONFLY,BOOST_OS_BSD_DRAGONFLY_NAME) + +#endif diff --git a/include/boost/predef/os/bsd/free.h b/include/boost/predef/os/bsd/free.h new file mode 100644 index 0000000..085c6cd --- /dev/null +++ b/include/boost/predef/os/bsd/free.h @@ -0,0 +1,56 @@ +/* +Copyright Redshift Software, Inc. 2012-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_FREE_H +#define BOOST_PREDEF_OS_BSD_FREE_H + +#include + +/*` +[heading `BOOST_OS_BSD_FREE`] + +[@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__FreeBSD__`] [__predef_detection__]] + + [[`__FreeBSD_version`] [V.R.P]] + ] + */ + +#define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__FreeBSD__) +# ifndef BOOST_OS_BSD +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# undef BOOST_OS_BSD_FREE +# if defined(__FreeBSD_version) +# if __FreeBSD_version < 500000 +# define BOOST_OS_BSD_FREE \ + BOOST_PREDEF_MAKE_10_VRP000(__FreeBSD_version) +# else +# define BOOST_OS_BSD_FREE \ + BOOST_PREDEF_MAKE_10_VRR000(__FreeBSD_version) +# endif +# else +# define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_BSD_FREE +# define BOOST_OS_BSD_FREE_AVAILABLE +#endif + +#define BOOST_OS_BSD_FREE_NAME "Free BSD" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_FREE,BOOST_OS_BSD_FREE_NAME) + +#endif diff --git a/include/boost/predef/os/bsd/net.h b/include/boost/predef/os/bsd/net.h new file mode 100644 index 0000000..ffbba00 --- /dev/null +++ b/include/boost/predef/os/bsd/net.h @@ -0,0 +1,80 @@ +/* +Copyright Redshift Software, Inc. 2012-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_NET_H +#define BOOST_PREDEF_OS_BSD_NET_H + +#include + +/*` +[heading `BOOST_OS_BSD_NET`] + +[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__NETBSD__`] [__predef_detection__]] + [[`__NetBSD__`] [__predef_detection__]] + + [[`__NETBSD_version`] [V.R.P]] + [[`NetBSD0_8`] [0.8.0]] + [[`NetBSD0_9`] [0.9.0]] + [[`NetBSD1_0`] [1.0.0]] + [[`__NetBSD_Version`] [V.R.P]] + ] + */ + +#define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__NETBSD__) || defined(__NetBSD__) +# ifndef BOOST_OS_BSD +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# undef BOOST_OS_BSD_NET +# if defined(__NETBSD__) +# if defined(__NETBSD_version) +# if __NETBSD_version < 500000 +# define BOOST_OS_BSD_NET \ + BOOST_PREDEF_MAKE_10_VRP000(__NETBSD_version) +# else +# define BOOST_OS_BSD_NET \ + BOOST_PREDEF_MAKE_10_VRR000(__NETBSD_version) +# endif +# else +# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE +# endif +# elif defined(__NetBSD__) +# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_8) +# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,8,0) +# endif +# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_9) +# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,9,0) +# endif +# if !defined(BOOST_OS_BSD_NET) && defined(NetBSD1_0) +# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(1,0,0) +# endif +# if !defined(BOOST_OS_BSD_NET) && defined(__NetBSD_Version) +# define BOOST_OS_BSD_NET \ + BOOST_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version) +# endif +# if !defined(BOOST_OS_BSD_NET) +# define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +#if BOOST_OS_BSD_NET +# define BOOST_OS_BSD_NET_AVAILABLE +#endif + +#define BOOST_OS_BSD_NET_NAME "DragonFly BSD" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_NET,BOOST_OS_BSD_NET_NAME) + +#endif diff --git a/include/boost/predef/os/bsd/open.h b/include/boost/predef/os/bsd/open.h new file mode 100644 index 0000000..953f3a9 --- /dev/null +++ b/include/boost/predef/os/bsd/open.h @@ -0,0 +1,167 @@ +/* +Copyright Redshift Software, Inc. 2012-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_BSD_OPEN_H +#define BOOST_PREDEF_OS_BSD_OPEN_H + +#include + +/*` +[heading `BOOST_OS_BSD_OPEN`] + +[@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OpenBSD__`] [__predef_detection__]] + + [[`OpenBSD2_0`] [2.0.0]] + [[`OpenBSD2_1`] [2.1.0]] + [[`OpenBSD2_2`] [2.2.0]] + [[`OpenBSD2_3`] [2.3.0]] + [[`OpenBSD2_4`] [2.4.0]] + [[`OpenBSD2_5`] [2.5.0]] + [[`OpenBSD2_6`] [2.6.0]] + [[`OpenBSD2_7`] [2.7.0]] + [[`OpenBSD2_8`] [2.8.0]] + [[`OpenBSD2_9`] [2.9.0]] + [[`OpenBSD3_0`] [3.0.0]] + [[`OpenBSD3_1`] [3.1.0]] + [[`OpenBSD3_2`] [3.2.0]] + [[`OpenBSD3_3`] [3.3.0]] + [[`OpenBSD3_4`] [3.4.0]] + [[`OpenBSD3_5`] [3.5.0]] + [[`OpenBSD3_6`] [3.6.0]] + [[`OpenBSD3_7`] [3.7.0]] + [[`OpenBSD3_8`] [3.8.0]] + [[`OpenBSD3_9`] [3.9.0]] + [[`OpenBSD4_0`] [4.0.0]] + [[`OpenBSD4_1`] [4.1.0]] + [[`OpenBSD4_2`] [4.2.0]] + [[`OpenBSD4_3`] [4.3.0]] + [[`OpenBSD4_4`] [4.4.0]] + [[`OpenBSD4_5`] [4.5.0]] + [[`OpenBSD4_6`] [4.6.0]] + [[`OpenBSD4_7`] [4.7.0]] + [[`OpenBSD4_8`] [4.8.0]] + [[`OpenBSD4_9`] [4.9.0]] + ] + */ + +#define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__OpenBSD__) +# ifndef BOOST_OS_BSD +# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# undef BOOST_OS_BSD_OPEN +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_0) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,0,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_1) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,1,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_2) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,2,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_3) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,3,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_4) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,4,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_5) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,5,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_6) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,6,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_7) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,7,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_8) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,8,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_9) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,9,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_0) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,0,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_1) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,1,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_2) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,2,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_3) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,3,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_4) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,4,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_5) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,5,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_6) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,6,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_7) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,7,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_8) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,8,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_9) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,9,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_0) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_1) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,1,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_2) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,2,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_3) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,3,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_4) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,4,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_5) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,5,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_6) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,6,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_7) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,7,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_8) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,8,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_9) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,9,0) +# endif +# if !defined(BOOST_OS_BSD_OPEN) +# define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_BSD_OPEN +# define BOOST_OS_BSD_OPEN_AVAILABLE +#endif + +#define BOOST_OS_BSD_OPEN_NAME "OpenBSD" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_OPEN,BOOST_OS_BSD_OPEN_NAME) + +#endif diff --git a/include/boost/predef/os/cygwin.h b/include/boost/predef/os/cygwin.h new file mode 100644 index 0000000..999957a --- /dev/null +++ b/include/boost/predef/os/cygwin.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_CYGWIN_H +#define BOOST_PREDEF_OS_CYGWIN_H + +#include +#include + +/*` +[heading `BOOST_OS_CYGWIN`] + +[@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__CYGWIN__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__CYGWIN__) +# undef BOOST_OS_CYGWIN +# define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_CYGWIN +# define BOOST_OS_CYGWIN_AVAILABLE +#endif + +#define BOOST_OS_CYGWIN_NAME "Cygwin" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_CYGWIN,BOOST_OS_CYGWIN_NAME) + + +#endif diff --git a/include/boost/predef/os/hpux.h b/include/boost/predef/os/hpux.h new file mode 100644 index 0000000..38bc8ac --- /dev/null +++ b/include/boost/predef/os/hpux.h @@ -0,0 +1,45 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_HPUX_H +#define BOOST_PREDEF_OS_HPUX_H + +#include +#include + +/*` +[heading `BOOST_OS_HPUX`] + +[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`hpux`] [__predef_detection__]] + [[`_hpux`] [__predef_detection__]] + [[`__hpux`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_HPUX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(hpux) || defined(_hpux) || defined(__hpux) +# undef BOOST_OS_HPUX +# define BOOST_OS_HPUX BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_HPUX +# define BOOST_OS_HPUX_AVAILABLE +#endif + +#define BOOST_OS_HPUX_NAME "HP-UX" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HPUX,BOOST_OS_HPUX_NAME) + + +#endif diff --git a/include/boost/predef/os/irix.h b/include/boost/predef/os/irix.h new file mode 100644 index 0000000..6745fb7 --- /dev/null +++ b/include/boost/predef/os/irix.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_IRIX_H +#define BOOST_PREDEF_OS_IRIX_H + +#include +#include + +/*` +[heading `BOOST_OS_IRIX`] + +[@http://en.wikipedia.org/wiki/Irix IRIX] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`sgi`] [__predef_detection__]] + [[`__sgi`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_IRIX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(sgi) || defined(__sgi) +# undef BOOST_OS_IRIX +# define BOOST_OS_IRIX BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_IRIX +# define BOOST_OS_IRIX_AVAILABLE +#endif + +#define BOOST_OS_IRIX_NAME "IRIX" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_IRIX,BOOST_OS_IRIX_NAME) + + +#endif diff --git a/include/boost/predef/os/linux.h b/include/boost/predef/os/linux.h new file mode 100644 index 0000000..1762b38 --- /dev/null +++ b/include/boost/predef/os/linux.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_LINUX_H +#define BOOST_PREDEF_OS_LINUX_H + +#include +#include + +/*` +[heading `BOOST_OS_LINUX`] + +[@http://en.wikipedia.org/wiki/Linux Linux] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`linux`] [__predef_detection__]] + [[`__linux`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_LINUX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(linux) || defined(__linux) +# undef BOOST_OS_LINUX +# define BOOST_OS_LINUX BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_LINUX +# define BOOST_OS_LINUX_AVAILABLE +#endif + +#define BOOST_OS_LINUX_NAME "Linux" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_LINUX,BOOST_OS_LINUX_NAME) + + +#endif diff --git a/include/boost/predef/os/macos.h b/include/boost/predef/os/macos.h new file mode 100644 index 0000000..db9ac25 --- /dev/null +++ b/include/boost/predef/os/macos.h @@ -0,0 +1,55 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_MACOS_H +#define BOOST_PREDEF_OS_MACOS_H + +#include +#include + +/*` +[heading `BOOST_OS_MACOS`] + +[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`macintosh`] [__predef_detection__]] + [[`Macintosh`] [__predef_detection__]] + [[`__APPLE__`] [__predef_detection__]] + [[`__MACH__`] [__predef_detection__]] + + [[`__APPLE__`, `__MACH__`] [10.0.0]] + [[ /otherwise/ ] [9.0.0]] + ] + */ + +#define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(macintosh) || defined(Macintosh) || \ + (defined(__APPLE__) && defined(__MACH__)) +# undef BOOST_OS_MACOS +# if !defined(BOOST_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) +# define BOOST_OS_MACOS BOOST_VERSION_NUMBER(10,0,0) +# endif +# if !defined(BOOST_OS_MACOS) +# define BOOST_OS_MACOS BOOST_VERSION_NUMBER(9,0,0) +# endif +#endif + +#if BOOST_OS_MACOS +# define BOOST_OS_MACOS_AVAILABLE +#endif + +#define BOOST_OS_MACOS_NAME "Mac OS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,BOOST_OS_MACOS_NAME) + + +#endif diff --git a/include/boost/predef/os/os400.h b/include/boost/predef/os/os400.h new file mode 100644 index 0000000..0d724cb --- /dev/null +++ b/include/boost/predef/os/os400.h @@ -0,0 +1,43 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_OS400_H +#define BOOST_PREDEF_OS_OS400_H + +#include +#include + +/*` +[heading `BOOST_OS_OS400`] + +[@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__OS400__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_OS400 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__OS400__) +# undef BOOST_OS_OS400 +# define BOOST_OS_OS400 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_OS400 +# define BOOST_OS_OS400_AVAILABLE +#endif + +#define BOOST_OS_OS400_NAME "IBM OS/400" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OS400,BOOST_OS_OS400_NAME) + + +#endif diff --git a/include/boost/predef/os/qnxnto.h b/include/boost/predef/os/qnxnto.h new file mode 100644 index 0000000..b34a8d6 --- /dev/null +++ b/include/boost/predef/os/qnxnto.h @@ -0,0 +1,57 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_QNXNTO_H +#define BOOST_PREDEF_OS_QNXNTO_H + +#include +#include + +/*` +[heading `BOOST_OS_QNX`] + +[@http://en.wikipedia.org/wiki/QNX QNX] operating system. +Version number available as major, and minor if possible. And +version 4 is specifically detected. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__QNX__`] [__predef_detection__]] + [[`__QNXNTO__`] [__predef_detection__]] + + [[`_NTO_VERSION`] [V.R.0]] + [[`__QNX__`] [4.0.0]] + ] + */ + +#define BOOST_OS_QNX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__QNX__) || defined(__QNXNTO__) +# undef BOOST_OS_QNX +# if !defined(BOOST_OS_QNX) && defined(_NTO_VERSION) +# define BOOST_OS_QNX BOOST_PREDEF_MAKE_10_VVRR(_NTO_VERSION) +# endif +# if !defined(BOOST_OS_QNX) && defined(__QNX__) +# define BOOST_OS_QNX BOOST_VERSION_NUMBER(4,0,0) +# endif +# if !defined(BOOST_OS_QNX) +# define BOOST_OS_QNX BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_QNX +# define BOOST_OS_QNX_AVAILABLE +#endif + +#define BOOST_OS_QNX_NAME "QNX" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,BOOST_OS_QNX_NAME) + + +#endif diff --git a/include/boost/predef/os/solaris.h b/include/boost/predef/os/solaris.h new file mode 100644 index 0000000..923deca --- /dev/null +++ b/include/boost/predef/os/solaris.h @@ -0,0 +1,44 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_SOLARIS_H +#define BOOST_PREDEF_OS_SOLARIS_H + +#include +#include + +/*` +[heading `BOOST_OS_SOLARIS`] + +[@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`sun`] [__predef_detection__]] + [[`__sun`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(sun) || defined(__sun) +# undef BOOST_OS_SOLARIS +# define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_SOLARIS +# define BOOST_OS_SOLARIS_AVAILABLE +#endif + +#define BOOST_OS_SOLARIS_NAME "Solaris" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SOLARIS,BOOST_OS_SOLARIS_NAME) + + +#endif diff --git a/include/boost/predef/os/unix.h b/include/boost/predef/os/unix.h new file mode 100644 index 0000000..04d1cd1 --- /dev/null +++ b/include/boost/predef/os/unix.h @@ -0,0 +1,76 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_UNIX_H +#define BOOST_PREDEF_OS_UNIX_H + +#include +#include + +/*` +[heading `BOOST_OS_UNIX`] + +[@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`unix`] [__predef_detection__]] + [[`__unix`] [__predef_detection__]] + [[`_XOPEN_SOURCE`] [__predef_detection__]] + [[`_POSIX_SOURCE`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_UNIX BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(unix) || defined(__unix) || \ + defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) +# undef BOOST_OS_UNIX +# define BOOST_OS_UNIX BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_UNIX +# define BOOST_OS_UNIX_AVAILABLE +#endif + +#define BOOST_OS_UNIX_NAME "Unix Environment" + +/*` +[heading `BOOST_OS_SVR4`] + +[@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__sysv__`] [__predef_detection__]] + [[`__SVR4`] [__predef_detection__]] + [[`__svr4__`] [__predef_detection__]] + [[`_SYSTYPE_SVR4`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_SVR4 BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__sysv__) || defined(__SVR4) || \ + defined(__svr4__) || defined(_SYSTYPE_SVR4) +# undef BOOST_OS_SVR4 +# define BOOST_OS_SVR4 BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_ARCH_ALPHA +# define _AVAILABLE +#endif + +#define BOOST_OS_SVR4_NAME "SVR4 Environment" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,BOOST_OS_UNIX_NAME) +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SVR4,BOOST_OS_SVR4_NAME) + +#endif diff --git a/include/boost/predef/os/vms.h b/include/boost/predef/os/vms.h new file mode 100644 index 0000000..e3641c0 --- /dev/null +++ b/include/boost/predef/os/vms.h @@ -0,0 +1,50 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_VMS_H +#define BOOST_PREDEF_OS_VMS_H + +#include +#include + +/*` +[heading `BOOST_OS_VMS`] + +[@http://en.wikipedia.org/wiki/Vms VMS] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`VMS`] [__predef_detection__]] + [[`__VMS`] [__predef_detection__]] + + [[`__VMS_VER`] [V.R.P]] + ] + */ + +#define BOOST_OS_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(VMS) || defined(__VMS) +# undef BOOST_OS_VMS +# if defined(__VMS_VER) +# define BOOST_OS_VMS BOOST_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) +# else +# define BOOST_OS_VMS BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_OS_VMS +# define BOOST_OS_VMS_AVAILABLE +#endif + +#define BOOST_OS_VMS_NAME "VMS" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_VMS,BOOST_OS_VMS_NAME) + + +#endif diff --git a/include/boost/predef/os/windows.h b/include/boost/predef/os/windows.h new file mode 100644 index 0000000..c82a752 --- /dev/null +++ b/include/boost/predef/os/windows.h @@ -0,0 +1,48 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OS_WINDOWS_H +#define BOOST_PREDEF_OS_WINDOWS_H + +#include +#include + +/*` +[heading `BOOST_OS_WINDOWS`] + +[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`_WIN32`] [__predef_detection__]] + [[`_WIN64`] [__predef_detection__]] + [[`__WIN32__`] [__predef_detection__]] + [[`__TOS_WIN__`] [__predef_detection__]] + [[`__WINDOWS__`] [__predef_detection__]] + ] + */ + +#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(_WIN32) || defined(_WIN64) || \ + defined(__WIN32__) || defined(__TOS_WIN__) || \ + defined(__WINDOWS__) +# undef BOOST_OS_WINDOWS +# define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_OS_WINDOWS +# define BOOST_OS_WINDOWS_AVAILABLE +#endif + +#define BOOST_OS_WINDOWS_NAME "Microsoft Windows" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,BOOST_OS_WINDOWS_NAME) + +#endif diff --git a/include/boost/predef/other.h b/include/boost/predef/other.h new file mode 100644 index 0000000..a9c40a3 --- /dev/null +++ b/include/boost/predef/other.h @@ -0,0 +1,14 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_OTHER_H +#define BOOST_PREDEF_OTHER_H + +#include +/*#include */ + +#endif diff --git a/include/boost/predef/other/endian.h b/include/boost/predef/other/endian.h new file mode 100644 index 0000000..deb2381 --- /dev/null +++ b/include/boost/predef/other/endian.h @@ -0,0 +1,199 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_ENDIAN_H +#define BOOST_PREDEF_ENDIAN_H + +#include +#include +#include +#include + +/*` +[heading `BOOST_ENDIAN_*`] + +Detection of endian memory ordering. There are four defined macros +in this header that define the various generally possible endian +memory orderings: + +* `BOOST_ENDIAN_BIG_BYTE`, byte-swapped big-endian. +* `BOOST_ENDIAN_BIG_WORD`, word-swapped big-endian. +* `BOOST_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian. +* `BOOST_ENDIAN_LITTLE_WORD`, word-swapped little-endian. + +The detection is conservative in that it only identifies endianness +that it knows for certain. In particular bi-endianness is not +indicated as is it not practically possible to determine the +endianness from anything but an operating system provided +header. And the currently known headers do not define that +programatic bi-endianness is available. + +This implementation is a compilation of various publicly available +information and acquired knowledge: + +# The indispensable documentation of "Pre-defined Compiler Macros" + [@http://sourceforge.net/p/predef/wiki/Endianness Endianness]. +# The various endian specifications available in the + [@http://wikipedia.org/ Wikipedia] computer architecture pages. +# Generally available searches for headers that define endianness. + */ + +#define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE +#define BOOST_ENDIAN_BIG_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE +#define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE +#define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE + +/* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. + */ +#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ + !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD +# if BOOST_LIB_C_GNU +# include +# else +# if BOOST_OS_BSD +# if BOOST_OS_BSD_OPEN +# include +# else +# include +# endif +# endif +# endif +# if defined(__BYTE_ORDER) +# if (__BYTE_ORDER == __BIG_ENDIAN) +# undef BOOST_ENDIAN_BIG_BYTE +# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if (__BYTE_ORDER == __LITTLE_ENDIAN) +# undef BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if (__BYTE_ORDER == __PDP_ENDIAN) +# undef BOOST_ENDIAN_LITTLE_WORD +# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +# if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) +# if (_BYTE_ORDER == _BIG_ENDIAN) +# undef BOOST_ENDIAN_BIG_BYTE +# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if (_BYTE_ORDER == _LITTLE_ENDIAN) +# undef BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if (_BYTE_ORDER == _PDP_ENDIAN) +# undef BOOST_ENDIAN_LITTLE_WORD +# define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +/* Built-in byte-swpped big-endian macros. + */ +#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ + !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD +# if !BOOST_ENDIAN_BIG_BYTE +# if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ + defined(__ARMEB__) || \ + defined(__THUMBEB__) || \ + defined(__AARCH64EB__) || \ + defined(_MIPSEB) || \ + defined(__MIPSEB) || \ + defined(__MIPSEB__) +# undef BOOST_ENDIAN_BIG_BYTE +# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +/* Built-in byte-swpped little-endian macros. + */ +#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ + !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD +# if !BOOST_ENDIAN_LITTLE_BYTE +# if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ + defined(__ARMEL__) || \ + defined(__THUMBEL__) || \ + defined(__AARCH64EL__) || \ + defined(_MIPSEL) || \ + defined(__MIPSEL) || \ + defined(__MIPSEL__) +# undef BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +/* Some architectures are strictly one endianess (as opposed + * the current common bi-endianess). + */ +#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ + !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD +# include +# if BOOST_ARCH_M68K || \ + BOOST_ARCH_PARISK || \ + BOOST_ARCH_SYS370 || \ + BOOST_ARCH_SYS390 || \ + BOOST_ARCH_Z +# undef BOOST_ENDIAN_BIG_BYTE +# define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# if BOOST_ARCH_AMD64 || \ + BOOST_ARCH_IA64 || \ + BOOST_ARCH_X86 || \ + BOOST_ARCH_BLACKFIN +# undef BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +/* Windows on ARM, if not otherwise detected/specified, is always + * byte-swaped little-endian. + */ +#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ + !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD +# if BOOST_ARCH_ARM +# include +# if BOOST_OS_WINDOWS +# undef BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE +# endif +# endif +#endif + +#if BOOST_ENDIAN_BIG_BYTE +# define BOOST_ENDIAN_BIG_BYTE_AVAILABLE +#endif +#if BOOST_ENDIAN_BIG_WORD +# define BOOST_ENDIAN_BIG_WORD_BYTE_AVAILABLE +#endif +#if BOOST_ENDIAN_LITTLE_BYTE +# define BOOST_ENDIAN_LITTLE_BYTE_AVAILABLE +#endif +#if BOOST_ENDIAN_LITTLE_WORD +# define BOOST_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE +#endif + +#define BOOST_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian" +#define BOOST_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian" +#define BOOST_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian" +#define BOOST_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_BYTE,BOOST_ENDIAN_BIG_BYTE_NAME) + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_WORD,BOOST_ENDIAN_BIG_WORD_NAME) + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_BYTE,BOOST_ENDIAN_LITTLE_BYTE_NAME) + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_WORD,BOOST_ENDIAN_LITTLE_WORD_NAME) + + +#endif diff --git a/include/boost/predef/platform.h b/include/boost/predef/platform.h new file mode 100644 index 0000000..5d2b179 --- /dev/null +++ b/include/boost/predef/platform.h @@ -0,0 +1,14 @@ +/* +Copyright Redshift Software, Inc. 2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_PLATFORM_H +#define BOOST_PREDEF_PLATFORM_H + +#include +/*#include */ + +#endif diff --git a/include/boost/predef/platform/mingw.h b/include/boost/predef/platform/mingw.h new file mode 100644 index 0000000..9bd7a5c --- /dev/null +++ b/include/boost/predef/platform/mingw.h @@ -0,0 +1,59 @@ +/* +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_COMPILER_MINGW_H +#define BOOST_PREDEF_COMPILER_MINGW_H + +#include +#include + +/*` +[heading `BOOST_PLAT_MINGW`] + +[@http://en.wikipedia.org/wiki/MinGW MinGW] platform. +Version number available as major, minor, and patch. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__MINGW32__`] [__predef_detection__]] + [[`__MINGW64__`] [__predef_detection__]] + + [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]] + [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]] + ] + */ + +#define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__MINGW32__) || defined(__MINGW64__) +# include <_mingw.h> +# undef BOOST_PLAT_MINGW +# if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) +# define BOOST_PLAT_MINGW \ + BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) +# endif +# if !defined(BOOST_PLAT_MINGW) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) +# define BOOST_PLAT_MINGW \ + BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) +# endif +# if !defined(BOOST_PLAT_MINGW) +# define BOOST_PLAT_MINGW BOOST_VERSION_NUMBER_AVAILABLE +# endif +#endif + +#if BOOST_PLAT_MINGW +# define BOOST_PLAT_MINGW_AVAILABLE +#endif + +#define BOOST_PLAT_MINGW_NAME "MinGW" + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_MINGW,BOOST_PLAT_MINGW_NAME) + + +#endif diff --git a/include/boost/predef/version_number.h b/include/boost/predef/version_number.h new file mode 100644 index 0000000..5836cfa --- /dev/null +++ b/include/boost/predef/version_number.h @@ -0,0 +1,54 @@ +/* +Copyright Rene Rivera 2005 +Copyright Redshift Software, Inc. 2008-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ + +#ifndef BOOST_PREDEF_VERSION_NUMBER_H +#define BOOST_PREDEF_VERSION_NUMBER_H + +/*` +[heading `BOOST_VERSION_NUMBER`] + +`` +BOOST_VERSION_NUMBER(major,minor,patch) +`` + +Defines standard version numbers, with these properties: + +* Decimal base whole numbers in the range \[0,1000000000). + The number range is designed to allow for a (2,2,5) triplet. + Which fits within a 32 bit value. +* The `major` number can be in the \[0,99\] range. +* The `minor` number can be in the \[0,99\] range. +* The `patch` number can be in the \[0,99999\] range. +* Values can be specified in any base. As the defined value + is an constant expression. +* Value can be directly used in both preprocessor and compiler + expressions for comparison to other similarly defined values. +* The implementation enforces the individual ranges for the + major, minor, and patch numbers. And values over the ranges + are truncated (modulo). + +*/ +#define BOOST_VERSION_NUMBER(major,minor,patch) \ + ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) + +#define BOOST_VERSION_NUMBER_MAX \ + BOOST_VERSION_NUMBER(99,99,99999) + +#define BOOST_VERSION_NUMBER_ZERO \ + BOOST_VERSION_NUMBER(0,0,0) + +#define BOOST_VERSION_NUMBER_MIN \ + BOOST_VERSION_NUMBER(0,0,1) + +#define BOOST_VERSION_NUMBER_AVAILABLE \ + BOOST_VERSION_NUMBER_MIN + +#define BOOST_VERSION_NUMBER_NOT_AVAILABLE \ + BOOST_VERSION_NUMBER_ZERO + +#endif diff --git a/test/build.jam b/test/build.jam new file mode 100755 index 0000000..ee5adb8 --- /dev/null +++ b/test/build.jam @@ -0,0 +1,31 @@ +#!/usr/bin/env b2 -a --verbose-test +# Copyright Redshift Software, Inc. 2011-2013 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +if $(BOOST_PREDEF_ROOT) +{ + path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ; +} +else +{ + path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ; +} + +project test + : requirements + $(BOOST_PREDEF_INCLUDE_ROOT) + $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h + ; + +using testing ; + +test-suite predef : + [ run info_as_cpp.cpp : : : always_show_run_output ] + [ run info_as_c.c : : : always_show_run_output ] + [ run info_as_objcpp.mm : : : always_show_run_output ] + [ run info_as_objc.m : : : always_show_run_output ] + [ run version.cpp ] + [ run make.cpp ] + ; diff --git a/test/info_as_c.c b/test/info_as_c.c new file mode 100644 index 0000000..15bc79f --- /dev/null +++ b/test/info_as_c.c @@ -0,0 +1,76 @@ +/* +Copyright Redshift Software Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include +#include +#include + +#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS + +typedef struct predef_info +{ + unsigned tag; + char * name; + char * description; + unsigned value; +} predef_info; + +predef_info first_predef_info = { 0x43210DEF , "-" , "-" , 0xFFFFFFFF }; + +#define BOOST_PREDEF_DECLARE_TEST(x,s) \ + predef_info x##_predef_info = { 0x67890DEF , #x , s , x }; +#include + +predef_info last_predef_info = { 0xFFFFFFFF , "-" , "-" , 0x43210DEF }; + +int predef_info_compare(const void * a, const void * b) +{ + const predef_info ** i = (const predef_info **)a; + const predef_info ** j = (const predef_info **)b; + return strcmp((*i)->name,(*j)->name); +} + +int main() +{ + unsigned x = 0; + predef_info ** predefs = 0; + unsigned predef_count = 0; + unsigned * i = &first_predef_info.tag; + unsigned * e = &last_predef_info.tag; + while (i < e) + { + i += 1; + if (*i == 0x67890DEF) + { + predef_count += 1; + predefs = realloc(predefs,predef_count*sizeof(predef_info*)); + predefs[predef_count-1] = (predef_info*)i; + } + } + qsort(predefs,predef_count,sizeof(predef_info*),predef_info_compare); + puts("** Detected **"); + for (x = 0; x < predef_count; ++x) + { + if (predefs[x]->value > 0) + printf("%s = %u (%u,%u,%u) | %s\n", + predefs[x]->name, + predefs[x]->value, + (predefs[x]->value/10000000)%100, + (predefs[x]->value/100000)%100, + (predefs[x]->value)%100000, + predefs[x]->description); + } + puts("** Not Detected **"); + for (x = 0; x < predef_count; ++x) + { + if (predefs[x]->value == 0) + printf("%s = %u | %s\n", + predefs[x]->name, + predefs[x]->value, + predefs[x]->description); + } + return 0; +} diff --git a/test/info_as_cpp.cpp b/test/info_as_cpp.cpp new file mode 100644 index 0000000..c63def2 --- /dev/null +++ b/test/info_as_cpp.cpp @@ -0,0 +1,90 @@ +/* +Copyright Redshift Software Inc. 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include +#include +#include + +#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS + +namespace +{ + struct predef_info + { + std::string name; + std::string description; + unsigned value; + + predef_info( + std::string const & n, + std::string const & d, + unsigned v); + + predef_info( + predef_info const & other) + : name(other.name) + , description(other.description) + , value(other.value) + { + } + + bool operator < (predef_info const & other) const + { + return name < other.name; + } + }; + + std::set * predefs = 0; + + predef_info::predef_info( + std::string const & n, + std::string const & d, + unsigned v) + : name(n) + , description(d) + , value(v) + { + if (!predefs) + { + predefs = new std::set(); + } + predefs->insert(*this); + } +} + +#define BOOST_PREDEF_DECLARE_TEST(x,s) \ + namespace { \ + predef_info x##_predef_init(#x,s,x); \ + } +#include + +int main() +{ + std::set::iterator i; + std::set::iterator e = predefs->end(); + std::cout << "** Detected **" << std::endl; + for (i = predefs->begin(); i != e; ++i) + { + if (i->value > 0) + std::cout + << i->name << " = " + << i->value + << " (" << (i->value/10000000)%100 << "," << (i->value/100000)%100 << "," << (i->value)%100000 << ") | " + << i->description + << std::endl; + } + std::cout << "** Not Detected **" << std::endl; + for (i = predefs->begin(); i != e; ++i) + { + if (i->value == 0) + std::cout + << i->name << " = " + << i->value << " | " + << i->description + << std::endl; + } + return 0; +} diff --git a/test/info_as_objc.m b/test/info_as_objc.m new file mode 100644 index 0000000..ce1d08e --- /dev/null +++ b/test/info_as_objc.m @@ -0,0 +1,7 @@ +/* +Copyright Redshift Software Inc. 2011 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include "info_as_c.c" diff --git a/test/info_as_objcpp.mm b/test/info_as_objcpp.mm new file mode 100644 index 0000000..2176eea --- /dev/null +++ b/test/info_as_objcpp.mm @@ -0,0 +1,7 @@ +/* +Copyright Redshift Software Inc. 2011 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include "info_as_cpp.cpp" diff --git a/test/make.cpp b/test/make.cpp new file mode 100644 index 0000000..bec6657 --- /dev/null +++ b/test/make.cpp @@ -0,0 +1,87 @@ +/* +Copyright Redshift Software Inc 2011-2013 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include +#include +#include +#include +#include +#include + +namespace +{ + struct test_info + { + std::string value; + bool passed; + + test_info(std::string const & v, bool p) : value(v), passed(p) {} + test_info(test_info const & o) : value(o.value), passed(o.passed) {} + }; + + std::vector test_results; +} + +#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X))) + +void test_BOOST_VERSION_NUMBER() +{ + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VRP(0xFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xF)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VVRP(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xF,0xF)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VRPP(0xFFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xFF)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VVRR(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0x0)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VRRPPPP(0xFFFFFFF) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFFFF)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VVRRP(0xFFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0xF)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_0X_VRRPP000(0xFFFFF000) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFF)); + + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRP(999) == BOOST_VERSION_NUMBER(9,9,9)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VPPP(9999) == BOOST_VERSION_NUMBER(9,0,999)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRRPP(999999) == BOOST_VERSION_NUMBER(99,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR(9999) == BOOST_VERSION_NUMBER(99,99,0)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRPP(9999) == BOOST_VERSION_NUMBER(9,9,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRRPP(99999) == BOOST_VERSION_NUMBER(9,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRP000(999000) == BOOST_VERSION_NUMBER(9,9,9)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRR000(999000) == BOOST_VERSION_NUMBER(9,99,0)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(2199009900) == BOOST_VERSION_NUMBER(21,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR00PP00(9999009900L) == BOOST_VERSION_NUMBER(99,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR0PP00(999909900) == BOOST_VERSION_NUMBER(99,99,99)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VV00(9900) == BOOST_VERSION_NUMBER(99,00,00)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VVRR0PPPP(999909999) == BOOST_VERSION_NUMBER(99,99,9999)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_10_VRR(999) == BOOST_VERSION_NUMBER(9,99,00)); + + PREDEF_CHECK(BOOST_PREDEF_MAKE_DATE(1971,1,1) == BOOST_VERSION_NUMBER(1,1,1)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMMDD(19700101) == BOOST_VERSION_NUMBER(0,1,1)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMMDD(19710101) == BOOST_VERSION_NUMBER(1,1,1)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMMDD(20691231) == BOOST_VERSION_NUMBER(99,12,31)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMM(197001) == BOOST_VERSION_NUMBER(0,1,1)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMM(197101) == BOOST_VERSION_NUMBER(1,1,1)); + PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYYMM(206912) == BOOST_VERSION_NUMBER(99,12,1)); +} + +int main() +{ + test_BOOST_VERSION_NUMBER(); + + unsigned fail_count = 0; + std::vector::iterator i = test_results.begin(); + std::vector::iterator e = test_results.end(); + for (; i != e; ++i) + { + std::cout + << (i->passed ? "[passed]" : "[failed]") + << " " << i->value + << std::endl; + fail_count += i->passed ? 0 : 1; + } + std::cout + << std::endl + << "TOTAL: " + << "passed " << (test_results.size()-fail_count) << ", " + << "failed " << (fail_count) << ", " + << "of " << (test_results.size()) + << std::endl; + return fail_count; +} diff --git a/test/version.cpp b/test/version.cpp new file mode 100644 index 0000000..747399a --- /dev/null +++ b/test/version.cpp @@ -0,0 +1,62 @@ +/* +Copyright Redshift Software Inc 2011-2012 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE_1_0.txt or copy at +http://www.boost.org/LICENSE_1_0.txt) +*/ +#include +#include +#include +#include +#include + +namespace +{ + struct test_info + { + std::string value; + bool passed; + + test_info(std::string const & v, bool p) : value(v), passed(p) {} + test_info(test_info const & o) : value(o.value), passed(o.passed) {} + }; + + std::vector test_results; +} + +#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X))) + +void test_BOOST_VERSION_NUMBER() +{ + PREDEF_CHECK(BOOST_VERSION_NUMBER(0,0,1) == 1L); + PREDEF_CHECK(BOOST_VERSION_NUMBER(99,99,99999) == 999999999L); + PREDEF_CHECK(BOOST_VERSION_NUMBER(299,99,99999) != 2999999999L); + PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) != 1009999999L); + PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) == 9999999L); + PREDEF_CHECK(BOOST_VERSION_NUMBER(100,100,100000) == 0L); +} + +int main() +{ + test_BOOST_VERSION_NUMBER(); + + unsigned fail_count = 0; + std::vector::iterator i = test_results.begin(); + std::vector::iterator e = test_results.end(); + for (; i != e; ++i) + { + std::cout + << (i->passed ? "[passed]" : "[failed]") + << " " << i->value + << std::endl; + fail_count += i->passed ? 0 : 1; + } + std::cout + << std::endl + << "TOTAL: " + << "passed " << (test_results.size()-fail_count) << ", " + << "failed " << (fail_count) << ", " + << "of " << (test_results.size()) + << std::endl; + return fail_count; +}