Remove pre-built docs now that they are part of the global docs.
4
doc/html/.gitignore
vendored
@ -1,4 +0,0 @@
|
|||||||
/standalone_HTML.manifest
|
|
||||||
/docutils.css
|
|
||||||
/minimal.css
|
|
||||||
/reference.css
|
|
@ -1,716 +0,0 @@
|
|||||||
|
|
||||||
/*=============================================================================
|
|
||||||
Copyright (c) 2004 Joel de Guzman
|
|
||||||
http://spirit.sourceforge.net/
|
|
||||||
|
|
||||||
Copyright 2013 Niall Douglas additions for colors and alignment.
|
|
||||||
Copyright 2013 Paul A. Bristow additions for more colors and alignments.
|
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*=============================================================================
|
|
||||||
Suppress margins in tables
|
|
||||||
=============================================================================*/
|
|
||||||
|
|
||||||
table th > *:first-child,
|
|
||||||
table td > *:first-child
|
|
||||||
{
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table th > *:last-child,
|
|
||||||
table td > *:last-child
|
|
||||||
{
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*=============================================================================
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*==============================================================================
|
|
||||||
Alignment and coloring use 'role' feature, available from Quickbook 1.6 up.
|
|
||||||
Added from Niall Douglas for role color and alignment.
|
|
||||||
http://article.gmane.org/gmane.comp.lib.boost.devel/243318
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Add text alignment (see http://www.w3schools.com/cssref/pr_text_text-align.asp) */
|
|
||||||
span.aligncenter
|
|
||||||
{
|
|
||||||
display: inline-block; width: 100%; text-align: center;
|
|
||||||
}
|
|
||||||
span.alignright
|
|
||||||
{
|
|
||||||
display: inline-block; width: 100%; text-align: right;
|
|
||||||
}
|
|
||||||
/* alignleft is the default. */
|
|
||||||
span.alignleft
|
|
||||||
{
|
|
||||||
display: inline-block; width: 100%; text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* alignjustify stretches the word spacing so that each line has equal width
|
|
||||||
within a chosen fraction of page width (here arbitrarily 20%).
|
|
||||||
*Not* useful inside table items as the column width remains the total string width.
|
|
||||||
Nor very useful, except to temporarily restrict the width.
|
|
||||||
*/
|
|
||||||
span.alignjustify
|
|
||||||
{
|
|
||||||
display: inline-block; width: 20%; text-align: justify;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text colors.
|
|
||||||
Names at http://www.w3.org/TR/2002/WD-css3-color-20020219/ 4.3. X11 color keywords.
|
|
||||||
Quickbook Usage: [role red Some red text]
|
|
||||||
|
|
||||||
*/
|
|
||||||
span.red { inline-block; color: red; }
|
|
||||||
span.green { color: green; }
|
|
||||||
span.lime { color: #00FF00; }
|
|
||||||
span.blue { color: blue; }
|
|
||||||
span.navy { color: navy; }
|
|
||||||
span.yellow { color: yellow; }
|
|
||||||
span.magenta { color: magenta; }
|
|
||||||
span.indigo { color: #4B0082; }
|
|
||||||
span.cyan { color: cyan; }
|
|
||||||
span.purple { color: purple; }
|
|
||||||
span.gold { color: gold; }
|
|
||||||
span.silver { color: silver; } /* lighter gray */
|
|
||||||
span.gray { color: #808080; } /* light gray */
|
|
Before Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 374 B |
Before Width: | Height: | Size: 391 B |
Before Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 488 B |
Before Width: | Height: | Size: 509 B |
Before Width: | Height: | Size: 499 B |
Before Width: | Height: | Size: 507 B |
Before Width: | Height: | Size: 446 B |
Before Width: | Height: | Size: 431 B |
Before Width: | Height: | Size: 441 B |
Before Width: | Height: | Size: 423 B |
Before Width: | Height: | Size: 431 B |
Before Width: | Height: | Size: 397 B |
Before Width: | Height: | Size: 434 B |
Before Width: | Height: | Size: 420 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 722 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 490 B |
Before Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 867 B |
Before Width: | Height: | Size: 449 B |
Before Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 259 B |
Before Width: | Height: | Size: 264 B |
Before Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
@ -1,65 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Predef 1.4.1</title>
|
|
||||||
<link rel="stylesheet" href="boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="next" href="predef/introduction.html" title="Introduction">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav"><a accesskey="n" href="predef/introduction.html"><img src="images/next.png" alt="Next"></a></div>
|
|
||||||
<div class="article">
|
|
||||||
<div class="titlepage">
|
|
||||||
<div>
|
|
||||||
<div><h2 class="title">
|
|
||||||
<a name="predef"></a>Predef 1.4.1</h2></div>
|
|
||||||
<div><div class="authorgroup"><div class="author"><h3 class="author">
|
|
||||||
<span class="firstname">Rene</span> <span class="surname">Rivera</span>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<div><p class="copyright">Copyright © 2005, 2008-2016 Rene Rivera</p></div>
|
|
||||||
<div><p class="copyright">Copyright © 2015 Charly Chevalier</p></div>
|
|
||||||
<div><p class="copyright">Copyright © 2015 Joel Falcou</p></div>
|
|
||||||
<div><div class="legalnotice">
|
|
||||||
<a name="predef.legal"></a><p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
</div>
|
|
||||||
<div class="toc">
|
|
||||||
<p><b>Table of Contents</b></p>
|
|
||||||
<dl class="toc">
|
|
||||||
<dt><span class="section"><a href="predef/introduction.html">Introduction</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/using_the_predefs.html">Using the predefs</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/adding_new_predefs.html">Adding new predefs</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference.html">Reference</a></span></dt>
|
|
||||||
<dd><dl>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_arch_architecture_macros.html"><code class="computeroutput"><span class="identifier">BOOST_ARCH</span></code> architecture macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_plat_platform_macros.html"><code class="computeroutput"><span class="identifier">BOOST_PLAT</span></code> platform macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/boost_hw_hardware_macros.html"><code class="computeroutput"><span class="identifier">BOOST_HW</span></code> hardware macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/other_macros.html">Other macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/reference/version_definition_macros.html">Version definition
|
|
||||||
macros</a></span></dt>
|
|
||||||
</dl></dd>
|
|
||||||
<dt><span class="section"><a href="predef/check_utilities.html">Check Utilities</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/history.html">History</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/to_do.html">To Do</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="predef/acknoledgements.html">Acknoledgements</a></span></dt>
|
|
||||||
</dl>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"><p><small>Last revised: July 19, 2016 at 15:27:08 GMT</small></p></td>
|
|
||||||
<td align="right"><div class="copyright-footer"></div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav"><a accesskey="n" href="predef/introduction.html"><img src="images/next.png" alt="Next"></a></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,49 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Acknoledgements</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="to_do.html" title="To Do">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="to_do.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.acknoledgements"></a><a class="link" href="acknoledgements.html" title="Acknoledgements">Acknoledgements</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<p>
|
|
||||||
The comprehensiveness of this library would not be possible without the existence
|
|
||||||
of the indispensable resource that is the <a href="http://sourceforge.net/p/predef/" target="_top">Pre-defined
|
|
||||||
C/C++ Compiler Macros</a> 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.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="to_do.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,303 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Adding new predefs</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="using_the_predefs.html" title="Using the predefs">
|
|
||||||
<link rel="next" href="reference.html" title="Reference">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="using_the_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.adding_new_predefs"></a><a class="link" href="adding_new_predefs.html" title="Adding new predefs">Adding new predefs</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.adding_new_predefs.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.adding_new_predefs.requirements_of_the_header"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.requirements_of_the_header">Requirements
|
|
||||||
of the header</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
All predefs need to follow a set of requirements:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
The headers must use the Boost Software License.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must, by default, be defined as <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER_NOT_AVAILABLE</span></code>.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must be redefined to a non-zero value once detected.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must, by default, be defined to <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER_AVAILABLE</span></code>
|
|
||||||
when the predef is detected.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
If possible, the predef will be defined as the version number detected.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must define <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code>
|
|
||||||
macros as needed.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must define a symbolic constant string name macro.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must declare itself, after being defined, for the testing system.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The predef must guarantee that it is the only one defined as detected per
|
|
||||||
category.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
But a predef can define <code class="computeroutput"><span class="special">*</span><span class="identifier">_EMULATED</span></code> macros to indicate that it
|
|
||||||
was previously detected by another header and is being "emulated"
|
|
||||||
by the system. Note that the <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code> macros must still be defined
|
|
||||||
in this situation.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<p>
|
|
||||||
And there are some extra guidelines that predef headers should follow:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
The detection should avoid including extra headers that might otherwise
|
|
||||||
not be included by default.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
If the detection must include a header, prefer guarding it within the detection
|
|
||||||
if possible.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
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.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.adding_new_predefs.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.adding_new_predefs.structure_of_the_header"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.structure_of_the_header">Structure
|
|
||||||
of the header</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
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:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="comment">/*
|
|
||||||
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)
|
|
||||||
*/</span>
|
|
||||||
|
|
||||||
<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
|
|
||||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
If the detection depends on the detection of another predef you should include
|
|
||||||
those headers here.
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">CATEGORY_TAG</span><span class="special">/</span><span class="identifier">DEPENDENCY</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Depending on how you are defining the predef you will at minimum have to include
|
|
||||||
the <code class="computeroutput"><span class="identifier">version_number</span><span class="special">.</span><span class="identifier">h</span></code> header. But you might also want to include
|
|
||||||
the <code class="computeroutput"><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span></code> header for the version number decomposing
|
|
||||||
utility macros:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">version_number</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
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:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="comment">/*`
|
|
||||||
[heading `BOOST_category_tag`]
|
|
||||||
|
|
||||||
Documentation about what is detected.
|
|
||||||
*/</span>
|
|
||||||
|
|
||||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER_NOT_AVAILABLE</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Next is the detection and definition of the particular predef. The structure
|
|
||||||
for this is to do a single overall check (<code class="computeroutput"><span class="identifier">condition_a</span></code>)
|
|
||||||
and place further version detection inside this. The first action inside the
|
|
||||||
overall check is to "<code class="computeroutput"><span class="preprocessor">#undef</span>
|
|
||||||
<span class="identifier">BOOST_category_tag</span></code>" 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 "<code class="computeroutput"><span class="preprocessor">#define</span>
|
|
||||||
<span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER_AVAILABLE</span></code>"
|
|
||||||
as the fallback to minimally indicate that the predef was detected:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># undef</span> <span class="identifier">BOOST_category_tag</span>
|
|
||||||
<span class="preprocessor"># if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># else</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER_AVAILABLE</span>
|
|
||||||
<span class="preprocessor"># endif</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
We also need to provide the <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code> versions of the predef.
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_category_tag</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag_AVAILABLE</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And for convenience we also want to provide a <code class="computeroutput"><span class="special">*</span><span class="identifier">_NAME</span></code> macro:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_catagory_tag_NAME</span> <span class="string">"Name"</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
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:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="identifier">BOOST_PREDEF_DECLARE_TEST</span><span class="special">(</span><span class="identifier">BOOST_category_tag</span><span class="special">,</span><span class="identifier">BOOST_category_tag_NAME</span><span class="special">)</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And, of course, we last need to close out the include guard:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.adding_new_predefs.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.adding_new_predefs.adding_exclusive_predefs"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.adding_exclusive_predefs">Adding
|
|
||||||
exclusive predefs</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
For headers of predefs that need to be mutually exclusive in the detection
|
|
||||||
we need to add checks and definitions to detect when the predef is detected
|
|
||||||
by multiple headers.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Internally compiler, operating system, and platforms define <code class="computeroutput"><span class="identifier">BOOST_PREDEF_DETAIL_COMP_DETECTED</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_DEFAIL_OS_DETECTED</span></code>,
|
|
||||||
and <code class="computeroutput"><span class="identifier">BOOST_PREDEF_DETAIL_PLAT_DETECTED</span></code>
|
|
||||||
respectively when the predef is first detected. This is used to guard against
|
|
||||||
multiple definition of the detection in later included headers. In those cases
|
|
||||||
the detection would instead be written as:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">!</span><span class="identifier">BOOST_PREDEF_DETAIL_category_DETECTED</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># undef</span> <span class="identifier">BOOST_category_tag</span>
|
|
||||||
<span class="preprocessor"># if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># else</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># endif</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And we also include a header that defines the <code class="computeroutput"><span class="special">*</span><span class="identifier">_DETECTED</span></code> macro when we have the detection:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_category_tag</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag_AVAILABLE</span>
|
|
||||||
<span class="preprocessor"># include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">CATEGORY_detected</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Everything else about the header is the same as the basic detection header.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.adding_new_predefs.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.adding_new_predefs.adding_an_exclusive_but_emulated"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.adding_an_exclusive_but_emulated">Adding
|
|
||||||
an exclusive but emulated predef</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
Because compilers are frequently emulated by other compilers we both want to
|
|
||||||
have exclusive detection of the compiler and also provide information that
|
|
||||||
we detected the emulation of the compiler. To accomplish this we define a local
|
|
||||||
<code class="computeroutput"><span class="special">*</span><span class="identifier">_DETECTION</span></code>
|
|
||||||
macro for the compiler detection. And conditionally define either the base
|
|
||||||
compiler predef <code class="computeroutput"><span class="identifier">BOOST_COMP_compiler</span></code>
|
|
||||||
or the alternate <code class="computeroutput"><span class="identifier">BOOST_COMP_compiler_EMULATED</span></code>
|
|
||||||
predef.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The initial detection would look like:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_COMP_tag_DETECTION</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># else</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_COMP_tag_DETECTION</span> <span class="identifier">BOOST_VERSION_NUMBER_AVAILABLE</span>
|
|
||||||
<span class="preprocessor"># endif</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And then we can conditionally define the base or emulated predefs:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#ifdef</span> <span class="identifier">BOOST_COMP_tag_DETECTION</span>
|
|
||||||
<span class="preprocessor"># if</span> <span class="identifier">defined</span><span class="special">(</span><span class="identifier">BOOST_PREDEF_DETAIL_COMP_DETECTED</span><span class="special">)</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_COMP_tag_EMULATED</span> <span class="identifier">BOOST_COMP_tag_DETECTION</span>
|
|
||||||
<span class="preprocessor"># else</span>
|
|
||||||
<span class="preprocessor"># undef</span> <span class="identifier">BOOST_COMP_tag</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_COMP_tag</span> <span class="identifier">BOOST_COMP_tag_DETECTION</span>
|
|
||||||
<span class="preprocessor"># endif</span>
|
|
||||||
<span class="preprocessor"># define</span> <span class="identifier">BOOST_category_tag_AVAILABLE</span>
|
|
||||||
<span class="preprocessor"># include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">comp_detected</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.adding_new_predefs.h4"></a>
|
|
||||||
<span class="phrase"><a name="predef.adding_new_predefs.using_utility_pattern_macros"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.using_utility_pattern_macros">Using utility
|
|
||||||
pattern macros</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
By including:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
One will get a set of utility 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 decomposed and defined as:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CCOMP_EDG</span> <span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">__EDG_VERSION__</span><span class="special">)</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="using_the_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,159 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Check Utilities</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="reference/version_definition_macros.html" title="Version definition macros">
|
|
||||||
<link rel="next" href="history.html" title="History">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="reference/version_definition_macros.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.check_utilities"></a><a class="link" href="check_utilities.html" title="Check Utilities">Check Utilities</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<p>
|
|
||||||
The <code class="computeroutput"><span class="identifier">predef_check</span></code> utility provides
|
|
||||||
a facility for building a program that will check a given set of expressions
|
|
||||||
against the definitions it detected when it was built.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.check_utilities.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.check_utilities.predef_check_programs"></a></span><a class="link" href="check_utilities.html#predef.check_utilities.predef_check_programs"><code class="literal">predef_check</code>
|
|
||||||
programs</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
Even though there is only one <code class="computeroutput"><span class="identifier">predef_check</span></code>
|
|
||||||
program, there are variations for each of the languages that are detected by
|
|
||||||
Predef to match the convention for sources files. For all of them one invokes
|
|
||||||
with a list of expression arguments. The expressions are evaluated within the
|
|
||||||
context of the particular <code class="literal">predef_check</code> program and if they
|
|
||||||
all are true zero (0) is returned. Otherwise the index of the first false expression
|
|
||||||
is returned.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The expression syntax is simple:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">predef-definition [ relational-operator version-value ]
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
<em class="replaceable"><code>predef-definition</code></em> can be any of the Predef definitions.
|
|
||||||
For example <code class="computeroutput"><span class="identifier">BOOST_COMP_GCC</span></code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<em class="replaceable"><code>relational-operator</code></em> can be any of: <code class="literal">></code>,
|
|
||||||
<code class="literal"><</code>, <code class="literal">>=</code>, <code class="literal"><=</code>,
|
|
||||||
<code class="literal">==</code> and <code class="literal">!=</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<em class="replaceable"><code>version-number</code></em> can be a full or partial version
|
|
||||||
triplet value. If it's a partial version triple it is completed with zeros.
|
|
||||||
That is <code class="literal">x.y</code> is equivalent to <code class="literal">x.y.0</code> and
|
|
||||||
<code class="literal">x</code> is equivalent to <code class="literal">x.0.0</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The <em class="replaceable"><code>relations-operator</code></em> and <em class="replaceable"><code>version-number</code></em>
|
|
||||||
can be ommited. In which case it is equivalent to:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">predef-definition > 0.0.0
|
|
||||||
</pre>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.check_utilities.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.check_utilities.using_with_boost_build"></a></span><a class="link" href="check_utilities.html#predef.check_utilities.using_with_boost_build">Using
|
|
||||||
with Boost.Build</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
You can use the <code class="literal">predef_check</code> programs directly from Boost
|
|
||||||
Build to configure target requirements. This is useful for controlling what
|
|
||||||
gets built as part of your project based on the detailed version information
|
|
||||||
available in Predef. The basic use is simple:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
|
||||||
: check require
|
|
||||||
: predef-check predef-require ;
|
|
||||||
|
|
||||||
exe my_windows_program : windows_source.cpp
|
|
||||||
: [ predef-require "BOOST_OS_WINDOWS" ] ;
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
That simple use case will skip building the <code class="literal">my_windows_program</code>
|
|
||||||
unless one is building for Windows. Like the direct <code class="literal">predef_check</code>
|
|
||||||
you can pass mutiple expressions using relational comparisons. For example:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
|
||||||
: check require
|
|
||||||
: predef-check predef-require ;
|
|
||||||
|
|
||||||
lib my_special_lib : source.cpp
|
|
||||||
: [ predef-require "BOOST_OS_WINDOWS != 0" "BOOST_OS_VMS != 0"] ;
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And in that case the <code class="literal">my_special_lib</code> is built only when the
|
|
||||||
OS is not Windows or VMS. The <code class="literal">requires</code> rule is a special
|
|
||||||
case of the <code class="literal">check</code> rule. And is defined in terms of it:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">rule require ( expressions + : language ? )
|
|
||||||
{
|
|
||||||
return [ check $(expressions) : $(language) : : <build>no ] ;
|
|
||||||
}
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
The expression can also use explicit "and", "or" logical
|
|
||||||
operators to for more complex checks:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
|
||||||
: check require
|
|
||||||
: predef-check predef-require ;
|
|
||||||
|
|
||||||
lib my_special_lib : source.cpp
|
|
||||||
: [ predef-require "BOOST_OS_WINDOWS" or "BOOST_OS_VMS"] ;
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
You can use the <code class="literal">check</code> rule for more control and to implement
|
|
||||||
something other than control of what gets built. The definition for the <code class="literal">check</code>
|
|
||||||
rule is:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">rule check ( expressions + : language ? : true-properties * : false-properties * )
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
When invoked as a reuirement of a Boost Build target this rule will add the
|
|
||||||
<code class="literal">true-properties</code> to the target if all the <code class="literal">expressions</code>
|
|
||||||
evaluate to true. Otherwise the <code class="literal">false-properties</code> get added
|
|
||||||
as requirements. For example you could use it to enable or disable features
|
|
||||||
in your programs:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting">import path-to-predef-src/tools/check/predef
|
|
||||||
: check require
|
|
||||||
: predef-check predef-require ;
|
|
||||||
|
|
||||||
exe my_special_exe : source.cpp
|
|
||||||
: [ predef-check "BOOST_OS_WINDOWS == 0"
|
|
||||||
: : <define>ENABLE_WMF=0
|
|
||||||
: <define>ENABLE_WMF=1 ] ;
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
For both <code class="literal">check</code> and <code class="literal">require</code> the <code class="literal">language</code>
|
|
||||||
argument controls which variant of the <code class="literal">predef_check</code> program
|
|
||||||
is used to check the expressions. It defaults to "c++", but can be
|
|
||||||
any of: "c", "cpp", "objc", and "objcpp".
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="reference/version_definition_macros.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="history.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,159 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>History</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="check_utilities.html" title="Check Utilities">
|
|
||||||
<link rel="next" href="to_do.html" title="To Do">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="check_utilities.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="to_do.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.history"></a><a class="link" href="history.html" title="History">History</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.history.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.history.1_4_1"></a></span><a class="link" href="history.html#predef.history.1_4_1">1.4.1</a>
|
|
||||||
</h4>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Small fixes for some redefinition errors, and mispelled macros.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Slightly rearrangement of structure to comply with current library requirements.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.history.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.history.1_4"></a></span><a class="link" href="history.html#predef.history.1_4">1.4</a>
|
|
||||||
</h4>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Add detection of SIMD hardware. With the addition of the <code class="computeroutput"><span class="identifier">BOOST_HW_</span><span class="special">*</span></code>
|
|
||||||
category (from Charly Chevalier).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Add compile only version of check utilities to address cross-compile use
|
|
||||||
cases. And changed the BBv2 check support to use compile only checks.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Fix test warnings.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Fix typos on <code class="computeroutput"><span class="identifier">AVAILABLE</span></code>
|
|
||||||
macros for Windows Platform. (from Vemund Handeland)
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.history.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.history.1_3"></a></span><a class="link" href="history.html#predef.history.1_3">1.3</a>
|
|
||||||
</h4>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Fix many problems with <code class="computeroutput"><span class="identifier">predef_check</span></code>
|
|
||||||
functionality.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Update SunPro detection to accomodate latest version of compiler from Oracle.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Addition of Travis-CI and Appveyor testing.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Add <code class="computeroutput"><span class="keyword">and</span></code> and <code class="computeroutput"><span class="keyword">or</span></code> logical operators for <code class="computeroutput"><span class="identifier">predef_check</span></code>
|
|
||||||
expression on the Boost Build side.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Fix <code class="computeroutput"><span class="identifier">BOOST_ARCH_PARISC</span></code> to
|
|
||||||
correctly spelled name (from Graham Hanson).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Fix <code class="computeroutput"><span class="identifier">MAKE_YYYYM</span></code> macros to
|
|
||||||
correctly limit the month (from rick68).
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.history.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.history.1_2"></a></span><a class="link" href="history.html#predef.history.1_2">1.2</a>
|
|
||||||
</h4>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Account for skip in Visual Studio product version vs. compiler version.
|
|
||||||
This supports version of VS 2015 an onward.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Add detection of Haiku OS (from Jessica Hamilton).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Some fixes to endian detection for Android (from mstahl-at-redhat.com).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Add missing <code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VVRRPP</span></code>
|
|
||||||
macro (from Erik Lindahl).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Add <code class="computeroutput"><span class="identifier">predef_check</span></code> program
|
|
||||||
and BBv2 integration for build configuration checks.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.history.h4"></a>
|
|
||||||
<span class="phrase"><a name="predef.history.1_1"></a></span><a class="link" href="history.html#predef.history.1_1">1.1</a>
|
|
||||||
</h4>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Addition of <code class="computeroutput"><span class="identifier">BOOST_PLAT_</span><span class="special">*</span></code> platform definitions for MinGW and Windows
|
|
||||||
platform variants.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Detection of ARM architecture for Windows compilers to target mobile devices
|
|
||||||
of Windows 8.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Improved ARM detection for 64 bit ARM.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Added detection of iOS an an operating system.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Improved detection of endianess on some platforms.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Addition of exclusive plus emulated definitions for platform and compiler
|
|
||||||
detection.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<div class="warning"><table border="0" summary="Warning">
|
|
||||||
<tr>
|
|
||||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="../images/warning.png"></td>
|
|
||||||
<th align="left">Warning</th>
|
|
||||||
</tr>
|
|
||||||
<tr><td align="left" valign="top"><p>
|
|
||||||
The big change for this version is the restructuring of the definitions to
|
|
||||||
avoid duplicate definitions in one category. That is, only one <code class="computeroutput"><span class="identifier">BOOST_OS_</span><span class="special">*</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_COMP_</span><span class="special">*</span></code>,
|
|
||||||
and <code class="computeroutput"><span class="identifier">BOOST_PLAT_</span><span class="special">*</span></code>
|
|
||||||
variant will be detected (except for sub-categories).
|
|
||||||
</p></td></tr>
|
|
||||||
</table></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="check_utilities.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="to_do.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,205 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Introduction</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="next" href="using_the_predefs.html" title="Using the predefs">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="using_the_predefs.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.introduction.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.introduction.proposal"></a></span><a class="link" href="introduction.html#predef.introduction.proposal">Proposal</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
The idea is to define a set of macros to identify compilers and consistently
|
|
||||||
represent their version. This includes:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
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).
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
A compiler identification macro, suitable for use in <code class="computeroutput"><span class="preprocessor">#if</span></code>/<code class="computeroutput"><span class="preprocessor">#elif</span></code> 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.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
"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.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.introduction.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.introduction.current_library"></a></span><a class="link" href="introduction.html#predef.introduction.current_library">Current
|
|
||||||
Library</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
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:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Version numbers that are always defined so that one doesn't have to guard
|
|
||||||
with <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Guard macros that can be used for <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>
|
|
||||||
checks.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
All possible definitions are included with the single <code class="computeroutput"><span class="preprocessor">#include</span>
|
|
||||||
<span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>
|
|
||||||
so that it's friendly to precompiled header usage.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Specific definitions can be included, ex. <code class="computeroutput"><span class="preprocessor">#include</span>
|
|
||||||
<span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">os</span><span class="special">/</span><span class="identifier">windows</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>
|
|
||||||
for single checks.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Predefs can be directly used in both preprocessor and compiler expressions
|
|
||||||
for comparison to other similarly defined values.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The headers are usable from multiple languages, that support the C preprocessor.
|
|
||||||
In particular C++, C, Objective C, and Objective C++.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.introduction.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.introduction.design_choices"></a></span><a class="link" href="introduction.html#predef.introduction.design_choices">Design
|
|
||||||
choices</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
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 <code class="literal">+2 147 483 647</code>.
|
|
||||||
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 <code class="literal">[0, 999 999 999]</code>. Distributing evenly, this
|
|
||||||
means 3 decimal digits for each version number part.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
So we can:
|
|
||||||
</p>
|
|
||||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
|
||||||
<li class="listitem">
|
|
||||||
use an uneven distribution or
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
use more bits (a larger type) or
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
use 3/3/3 and have the particular compiler/platform/stdlib deal with setting
|
|
||||||
the numbers within the 3-digit range.
|
|
||||||
</li>
|
|
||||||
</ol></div>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<div class="note"><table border="0" summary="Note">
|
|
||||||
<tr>
|
|
||||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
|
|
||||||
<th align="left">Note</th>
|
|
||||||
</tr>
|
|
||||||
<tr><td align="left" valign="top"><p>
|
|
||||||
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).
|
|
||||||
</p></td></tr>
|
|
||||||
</table></div>
|
|
||||||
<p>
|
|
||||||
It might reassure the reader that this decision is actually encoded in one
|
|
||||||
place in the code; the definition of <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.introduction.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.introduction.future_work"></a></span><a class="link" href="introduction.html#predef.introduction.future_work">Future
|
|
||||||
work</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
Even though the basics of this library are done, there is much work that can
|
|
||||||
be done:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
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.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
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.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
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.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
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 <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span></code>
|
|
||||||
macro would benefit from a more readable syntax. As would the <code class="computeroutput"><span class="identifier">BOOST_TESTED_AT</span></code> detail macro.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
And obviously there's lots of work to do in reformulating the existing
|
|
||||||
Boost libraries to use the Predef library once it's accepted.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
And there's the continuing work of adding definitions for present and future
|
|
||||||
compilers, platforms, architectures, languages, and libraries.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="using_the_predefs.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,46 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Reference</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="adding_new_predefs.html" title="Adding new predefs">
|
|
||||||
<link rel="next" href="reference/boost_arch_architecture_macros.html" title="BOOST_ARCH architecture macros">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="adding_new_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/boost_arch_architecture_macros.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<div class="toc"><dl class="toc">
|
|
||||||
<dt><span class="section"><a href="reference/boost_arch_architecture_macros.html"><code class="computeroutput"><span class="identifier">BOOST_ARCH</span></code> architecture macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_comp_compiler_macros.html"><code class="computeroutput"><span class="identifier">BOOST_COMP</span></code> compiler macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_lang_language_standards_ma.html"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_plat_platform_macros.html"><code class="computeroutput"><span class="identifier">BOOST_PLAT</span></code> platform macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/boost_hw_hardware_macros.html"><code class="computeroutput"><span class="identifier">BOOST_HW</span></code> hardware macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/other_macros.html">Other macros</a></span></dt>
|
|
||||||
<dt><span class="section"><a href="reference/version_definition_macros.html">Version definition
|
|
||||||
macros</a></span></dt>
|
|
||||||
</dl></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="adding_new_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/boost_arch_architecture_macros.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,334 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>BOOST_LANG language standards macros</title>
|
|
||||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
|
||||||
<link rel="prev" href="boost_comp_compiler_macros.html" title="BOOST_COMP compiler macros">
|
|
||||||
<link rel="next" href="boost_lib_library_macros.html" title="BOOST_LIB library macros">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_comp_compiler_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_lib_library_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma"></a><a class="link" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros"><code class="computeroutput"><span class="identifier">BOOST_LANG</span></code> language standards macros</a>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lang_language_standards_ma.boost_lang_objc"></a></span><a class="link" href="boost_lang_language_standards_ma.html#predef.reference.boost_lang_language_standards_ma.boost_lang_objc"><code class="computeroutput"><span class="identifier">BOOST_LANG_OBJC</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Objective-C" target="_top">Objective-C</a>
|
|
||||||
language.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody><tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__OBJC__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr></tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lang_language_standards_ma.boost_lang_stdc"></a></span><a class="link" href="boost_lang_language_standards_ma.html#predef.reference.boost_lang_language_standards_ma.boost_lang_stdc"><code class="computeroutput"><span class="identifier">BOOST_LANG_STDC</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/C_(programming_language)" target="_top">Standard
|
|
||||||
C</a> language. If available, the year of the standard is detected as
|
|
||||||
YYYY.MM.1 from the Epoc date.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__STDC__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__STDC_VERSION__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lang_language_standards_ma.boost_lang_stdcpp"></a></span><a class="link" href="boost_lang_language_standards_ma.html#predef.reference.boost_lang_language_standards_ma.boost_lang_stdcpp"><code class="computeroutput"><span class="identifier">BOOST_LANG_STDCPP</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/C%2B%2B" target="_top">Standard C++</a> 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:
|
|
||||||
</p>
|
|
||||||
<div class="table">
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.detected_version_number_vs_c_sta"></a><p class="title"><b>Table 1. Detected Version Number vs. C++ Standard Year</b></p>
|
|
||||||
<div class="table-contents"><table class="table" summary="Detected Version Number vs. C++ Standard Year">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Detected Version Number
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Standard Year
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
C++ Standard
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
27.11.1
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
1998
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
ISO/IEC 14882:1998
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
41.12.1
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
2011
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
ISO/IEC 14882:2011
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
</div>
|
|
||||||
<br class="table-break"><div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__cplusplus</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__cplusplus</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
YYYY.MM.1
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lang_language_standards_ma.boost_lang_stdcppcli"></a></span><a class="link" href="boost_lang_language_standards_ma.html#predef.reference.boost_lang_language_standards_ma.boost_lang_stdcppcli"><code class="computeroutput"><span class="identifier">BOOST_LANG_STDCPPCLI</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/C%2B%2B/CLI" target="_top">Standard C++/CLI</a>
|
|
||||||
language. If available, the year of the standard is detected as YYYY.MM.1
|
|
||||||
from the Epoc date.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__cplusplus_cli</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__cplusplus_cli</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
YYYY.MM.1
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lang_language_standards_ma.h4"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lang_language_standards_ma.boost_lang_stdecpp"></a></span><a class="link" href="boost_lang_language_standards_ma.html#predef.reference.boost_lang_language_standards_ma.boost_lang_stdecpp"><code class="computeroutput"><span class="identifier">BOOST_LANG_STDECPP</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Embedded_C%2B%2B" target="_top">Standard Embedded
|
|
||||||
C++</a> language.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody><tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__embedded_cplusplus</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr></tbody>
|
|
||||||
</table></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_comp_compiler_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_lib_library_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,896 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>BOOST_LIB library macros</title>
|
|
||||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
|
||||||
<link rel="prev" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
|
|
||||||
<link rel="next" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_lang_language_standards_ma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_os_operating_system_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
|
||||||
<a name="predef.reference.boost_lib_library_macros"></a><a class="link" href="boost_lib_library_macros.html" title="BOOST_LIB library macros"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_c_gnu"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_c_gnu"><code class="computeroutput"><span class="identifier">BOOST_LIB_C_GNU</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Glibc" target="_top">GNU glibc</a> Standard
|
|
||||||
C library. Version number available as major, and minor.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBC__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GNU_LIBRARY__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBC__</span></code>, <code class="computeroutput"><span class="identifier">__GLIBC_MINOR__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GNU_LIBRARY__</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">__GNU_LIBRARY_MINOR__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_c_uc"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_c_uc"><code class="computeroutput"><span class="identifier">BOOST_LIB_C_UC</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Uclibc" target="_top">uClibc</a> Standard
|
|
||||||
C library.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__UCLIBC__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__UCLIBC_MAJOR__</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">__UCLIBC_MINOR__</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">__UCLIBC_SUBLEVEL__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_c_vms"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_c_vms"><code class="computeroutput"><span class="identifier">BOOST_LIB_C_VMS</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
VMS libc Standard C library. Version number available as major, minor, and
|
|
||||||
patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__CRTL_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__CRTL_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_c_zos"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_c_zos"><code class="computeroutput"><span class="identifier">BOOST_LIB_C_ZOS</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
z/OS libc Standard C library. Version number available as major, minor, and
|
|
||||||
patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__LIBREL__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__LIBREL__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__TARGET_LIB__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h4"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_cxx"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_cxx"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_CXX</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://libcxx.llvm.org/" target="_top">libc++</a> C++ Standard Library.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_LIBCPP_VERSION</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_LIBCPP_VERSION</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.0.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h5"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_dinkumware"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_dinkumware"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_DINKUMWARE</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/Dinkumware" target="_top">Dinkumware</a> Standard
|
|
||||||
C++ Library. If available version number as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_YVALS</span></code>, <code class="computeroutput"><span class="identifier">__IBMCPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_CPPLIB_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_CPPLIB_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h6"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_como"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_como"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_COMO</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://www.comeaucomputing.com/libcomo/" target="_top">Comeau Computing</a>
|
|
||||||
Standard C++ Library. Version number available as major.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__LIBCOMO__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__LIBCOMO_VERSION__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.0.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h7"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_msipl"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_msipl"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_MSIPL</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://modena.us/" target="_top">Modena Software Lib++</a> Standard C++
|
|
||||||
Library.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">MSIPL_COMPILE_H</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MSIPL_COMPILE_H</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h8"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_msl"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_msl"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_MSL</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://www.freescale.com/" target="_top">Metrowerks</a> Standard C++ Library.
|
|
||||||
Version number available as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MSL_CPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MSL__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MSL_CPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MSL__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h9"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_rw"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_rw"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_RW</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://stdcxx.apache.org/" target="_top">Roguewave</a> Standard C++ library.
|
|
||||||
If available version number as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__STD_RWCOMPILER_H__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_RWSTD_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_RWSTD_VER</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h10"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_sgi"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_sgi"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_SGI</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://www.sgi.com/tech/stl/" target="_top">SGI</a> Standard C++ library.
|
|
||||||
If available version number as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__STL_CONFIG_H</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__SGI_STL</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h11"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_gnu"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_gnu"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_GNU</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://gcc.gnu.org/libstdc++/" target="_top">GNU libstdc++</a> Standard
|
|
||||||
C++ library. Version number available as year (from 1970), month, and day.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBCXX__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBCPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBCXX__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__GLIBCPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h12"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_stlport"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_stlport"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_STLPORT</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://sourceforge.net/projects/stlport/" target="_top">STLport Standard C++</a>
|
|
||||||
library. Version number available as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__SGI_STL_PORT</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_STLPORT_VERSION</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_STLPORT_MAJOR</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">_STLPORT_MINOR</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">_STLPORT_PATCHLEVEL</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">_STLPORT_VERSION</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__SGI_STL_PORT</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.P
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_lib_library_macros.h13"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_lib_library_macros.boost_lib_std_ibm"></a></span><a class="link" href="boost_lib_library_macros.html#predef.reference.boost_lib_library_macros.boost_lib_std_ibm"><code class="computeroutput"><span class="identifier">BOOST_LIB_STD_IBM</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://www.ibm.com/software/awdtools/xlcpp/" target="_top">IBM VACPP Standard
|
|
||||||
C++</a> library.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody><tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__IBMCPP__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr></tbody>
|
|
||||||
</table></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_lang_language_standards_ma.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_os_operating_system_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,276 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>BOOST_PLAT platform macros</title>
|
|
||||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
|
||||||
<link rel="prev" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
|
||||||
<link rel="next" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_hw_hardware_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros"></a><a class="link" href="boost_plat_platform_macros.html" title="BOOST_PLAT platform macros"><code class="computeroutput"><span class="identifier">BOOST_PLAT</span></code> platform macros</a>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_plat_platform_macros.boost_plat_mingw"></a></span><a class="link" href="boost_plat_platform_macros.html#predef.reference.boost_plat_platform_macros.boost_plat_mingw"><code class="computeroutput"><span class="identifier">BOOST_PLAT_MINGW</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
<a href="http://en.wikipedia.org/wiki/MinGW" target="_top">MinGW</a> platform. Version
|
|
||||||
number available as major, minor, and patch.
|
|
||||||
</p>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW32__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW64__</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW64_VERSION_MAJOR</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW64_VERSION_MINOR</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW32_VERSION_MAJOR</span></code>,
|
|
||||||
<code class="computeroutput"><span class="identifier">__MINGW32_VERSION_MINOR</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
V.R.0
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_plat_platform_macros.boost_plat_windows_desktop"></a></span><a class="link" href="boost_plat_platform_macros.html#predef.reference.boost_plat_platform_macros.boost_plat_windows_desktop"><code class="computeroutput"><span class="identifier">BOOST_PLAT_WINDOWS_DESKTOP</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="special">!</span><span class="identifier">WINAPI_FAMILY</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">WINAPI_FAMILY</span> <span class="special">==</span> <span class="identifier">WINAPI_FAMILY_DESKTOP_APP</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_plat_platform_macros.boost_plat_windows_phone"></a></span><a class="link" href="boost_plat_platform_macros.html#predef.reference.boost_plat_platform_macros.boost_plat_windows_phone"><code class="computeroutput"><span class="identifier">BOOST_PLAT_WINDOWS_PHONE</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody><tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">WINAPI_FAMILY</span> <span class="special">==</span> <span class="identifier">WINAPI_FAMILY_PHONE_APP</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr></tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros.h3"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_plat_platform_macros.boost_plat_windows_runtime"></a></span><a class="link" href="boost_plat_platform_macros.html#predef.reference.boost_plat_platform_macros.boost_plat_windows_runtime"><code class="computeroutput"><span class="identifier">BOOST_PLAT_WINDOWS_RUNTIME</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">WINAPI_FAMILY</span> <span class="special">==</span> <span class="identifier">WINAPI_FAMILY_APP</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">WINAPI_FAMILY</span> <span class="special">==</span> <span class="identifier">WINAPI_FAMILY_PHONE_APP</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.boost_plat_platform_macros.h4"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.boost_plat_platform_macros.boost_plat_windows_store"></a></span><a class="link" href="boost_plat_platform_macros.html#predef.reference.boost_plat_platform_macros.boost_plat_windows_store"><code class="computeroutput"><span class="identifier">BOOST_PLAT_WINDOWS_STORE</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<div class="informaltable"><table class="table">
|
|
||||||
<colgroup>
|
|
||||||
<col>
|
|
||||||
<col>
|
|
||||||
</colgroup>
|
|
||||||
<thead><tr>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Symbol
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<p>
|
|
||||||
Version
|
|
||||||
</p>
|
|
||||||
</th>
|
|
||||||
</tr></thead>
|
|
||||||
<tbody><tr>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">WINAPI_FAMILY</span> <span class="special">==</span> <span class="identifier">WINAPI_FAMILY_APP</span></code>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<p>
|
|
||||||
<span class="bold"><strong>detection</strong></span>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr></tbody>
|
|
||||||
</table></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_hw_hardware_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,84 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Other macros</title>
|
|
||||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
|
||||||
<link rel="prev" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
|
||||||
<link rel="next" href="version_definition_macros.html" title="Version definition macros">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_hw_hardware_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
|
||||||
<a name="predef.reference.other_macros"></a><a class="link" href="other_macros.html" title="Other macros">Other macros</a>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.other_macros.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.other_macros.boost_endian"></a></span><a class="link" href="other_macros.html#predef.reference.other_macros.boost_endian"><code class="computeroutput"><span class="identifier">BOOST_ENDIAN_</span><span class="special">*</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
Detection of endian memory ordering. There are four defined macros in this
|
|
||||||
header that define the various generally possible endian memory orderings:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_BIG_BYTE</span></code>,
|
|
||||||
byte-swapped big-endian.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_BIG_WORD</span></code>,
|
|
||||||
word-swapped big-endian.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_LITTLE_BYTE</span></code>,
|
|
||||||
byte-swapped little-endian.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_LITTLE_WORD</span></code>,
|
|
||||||
word-swapped little-endian.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This implementation is a compilation of various publicly available information
|
|
||||||
and acquired knowledge:
|
|
||||||
</p>
|
|
||||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
|
||||||
<li class="listitem">
|
|
||||||
The indispensable documentation of "Pre-defined Compiler Macros"
|
|
||||||
<a href="http://sourceforge.net/p/predef/wiki/Endianness" target="_top">Endianness</a>.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The various endian specifications available in the <a href="http://wikipedia.org/" target="_top">Wikipedia</a>
|
|
||||||
computer architecture pages.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Generally available searches for headers that define endianness.
|
|
||||||
</li>
|
|
||||||
</ol></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="boost_hw_hardware_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,187 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Version definition macros</title>
|
|
||||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../reference.html" title="Reference">
|
|
||||||
<link rel="prev" href="other_macros.html" title="Other macros">
|
|
||||||
<link rel="next" href="../check_utilities.html" title="Check Utilities">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="other_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../check_utilities.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h3 class="title">
|
|
||||||
<a name="predef.reference.version_definition_macros"></a><a class="link" href="version_definition_macros.html" title="Version definition macros">Version definition
|
|
||||||
macros</a>
|
|
||||||
</h3></div></div></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.version_definition_macros.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.version_definition_macros.boost_version_number"></a></span><a class="link" href="version_definition_macros.html#predef.reference.version_definition_macros.boost_version_number"><code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code></a>
|
|
||||||
</h5>
|
|
||||||
<pre class="programlisting"><span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Defines standard version numbers, with these properties:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
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.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The <code class="computeroutput"><span class="identifier">major</span></code> number can
|
|
||||||
be in the [0,99] range.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The <code class="computeroutput"><span class="identifier">minor</span></code> number can
|
|
||||||
be in the [0,99] range.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The <code class="computeroutput"><span class="identifier">patch</span></code> number can
|
|
||||||
be in the [0,99999] range.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Values can be specified in any base. As the defined value is an constant
|
|
||||||
expression.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Value can be directly used in both preprocessor and compiler expressions
|
|
||||||
for comparison to other similarly defined values.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The implementation enforces the individual ranges for the major, minor,
|
|
||||||
and patch numbers. And values over the ranges are truncated (modulo).
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.version_definition_macros.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.version_definition_macros.boost_predef_make_macros"></a></span><a class="link" href="version_definition_macros.html#predef.reference.version_definition_macros.boost_predef_make_macros"><code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_</span><span class="special">..</span></code>
|
|
||||||
macros</a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
These set of macros decompose common vendor version number macros which are
|
|
||||||
composed version, revision, and patch digits. The naming convention indicates:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
The base of the specified version number. "<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X</span></code>"
|
|
||||||
for hexadecimal digits, and "<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10</span></code>"
|
|
||||||
for decimal digits.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
The format of the vendor version number. Where "<code class="computeroutput"><span class="identifier">V</span></code>"
|
|
||||||
indicates the version digits, "<code class="computeroutput"><span class="identifier">R</span></code>"
|
|
||||||
indicates the revision digits, "<code class="computeroutput"><span class="identifier">P</span></code>"
|
|
||||||
indicates the patch digits, and "<code class="computeroutput"><span class="number">0</span></code>"
|
|
||||||
indicates an ignored digit.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<p>
|
|
||||||
Macros are:
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VRP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VVRP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VRPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VVRR</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VRRPPPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VVRRP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VRRPP000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_0X_VVRRPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VPPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRP000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRR</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRRPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VRR000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VV00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VVRR</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VVRRPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VVRR0PP00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VVRR0PPPP</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_10_VVRR00PP00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<h5>
|
|
||||||
<a name="predef.reference.version_definition_macros.h2"></a>
|
|
||||||
<span class="phrase"><a name="predef.reference.version_definition_macros.boost_predef_make_date_macros"></a></span><a class="link" href="version_definition_macros.html#predef.reference.version_definition_macros.boost_predef_make_date_macros"><code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_</span><span class="special">*..</span></code>
|
|
||||||
date macros</a>
|
|
||||||
</h5>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_DATE</span><span class="special">(</span><span class="identifier">Y</span><span class="special">,</span><span class="identifier">M</span><span class="special">,</span><span class="identifier">D</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_YYYYMMDD</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_YYYY</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_YYYYMM</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="other_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../check_utilities.html"><img src="../../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,42 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>To Do</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="history.html" title="History">
|
|
||||||
<link rel="next" href="acknoledgements.html" title="Acknoledgements">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknoledgements.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.to_do"></a><a class="link" href="to_do.html" title="To Do">To Do</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
Improve reference documentation.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Provide BOOST_WORKAROUND style macros for public use.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="acknoledgements.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,233 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
||||||
<title>Using the predefs</title>
|
|
||||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
|
||||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
|
||||||
<link rel="home" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="up" href="../index.html" title="Predef 1.4.1">
|
|
||||||
<link rel="prev" href="introduction.html" title="Introduction">
|
|
||||||
<link rel="next" href="adding_new_predefs.html" title="Adding new predefs">
|
|
||||||
</head>
|
|
||||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="adding_new_predefs.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
|
||||||
<a name="predef.using_the_predefs"></a><a class="link" href="using_the_predefs.html" title="Using the predefs">Using the predefs</a>
|
|
||||||
</h2></div></div></div>
|
|
||||||
<p>
|
|
||||||
To use the automatically defined predefs one needs to only include the single
|
|
||||||
top-level header:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
This defines <span class="bold"><strong>all</strong></span> the version macros known
|
|
||||||
to the library. For each macro it will be defined to either a <span class="emphasis"><em>zero</em></span>
|
|
||||||
valued expression for when the particular item is not detected, and to a <span class="emphasis"><em>positive</em></span>
|
|
||||||
value if it is detected. The predef macros fall onto five categories each with
|
|
||||||
macros of a particular prefix:
|
|
||||||
</p>
|
|
||||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ARCH_</span></code>for system/CPU
|
|
||||||
architecture one is compiling for.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_COMP_</span></code> for the compiler
|
|
||||||
one is using.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_LANG_</span></code> for language
|
|
||||||
standards one is compiling against.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_LIB_C_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIB_STD_</span></code> for the C and C++ standard
|
|
||||||
library in use.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> for the operating
|
|
||||||
system we are compiling to.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_PLAT_</span></code> for platforms
|
|
||||||
on top of operating system or compilers.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_</span></code> for endianness
|
|
||||||
of the os and architecture combination.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_HW_</span></code> for hardware
|
|
||||||
specific features.
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_HW_SIMD</span></code> for SIMD
|
|
||||||
(Single Instruction Multiple Data) detection.
|
|
||||||
</li>
|
|
||||||
</ul></div>
|
|
||||||
<div class="note"><table border="0" summary="Note">
|
|
||||||
<tr>
|
|
||||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
|
|
||||||
<th align="left">Note</th>
|
|
||||||
</tr>
|
|
||||||
<tr><td align="left" valign="top"><p>
|
|
||||||
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.
|
|
||||||
</p></td></tr>
|
|
||||||
</table></div>
|
|
||||||
<p>
|
|
||||||
One uses the individual definitions to compare against specific versions by
|
|
||||||
comparing against the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>
|
|
||||||
macro. For example, to make a choice based on the version of the GCC C++ compiler
|
|
||||||
one would:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
|
||||||
|
|
||||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
|
|
||||||
<span class="special">{</span>
|
|
||||||
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_COMP_GNUC</span> <span class="special">>=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">))</span>
|
|
||||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"GCC compiler is at least version 4.0.0"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
|
||||||
<span class="keyword">else</span>
|
|
||||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
|
||||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
|
||||||
<span class="special">}</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
As you might notice above the <code class="computeroutput"><span class="keyword">else</span></code>
|
|
||||||
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:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
|
||||||
|
|
||||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
|
|
||||||
<span class="special">{</span>
|
|
||||||
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_COMP_GNUC</span><span class="special">)</span>
|
|
||||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"This is GNU GCC!"</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
|
||||||
<span class="keyword">else</span>
|
|
||||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Not GNU GCC."</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
|
||||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
|
||||||
<span class="special">}</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
And since the predef's are preprocessor definitions the same is possible from
|
|
||||||
the preprocessor:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span>
|
|
||||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
|
||||||
|
|
||||||
<span class="preprocessor">#if</span> <span class="identifier">BOOST_COMP_GNUC</span>
|
|
||||||
<span class="preprocessor">#if</span> <span class="identifier">BOOST_COMP_GNUC</span> <span class="special">>=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span>
|
|
||||||
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, of at least version 4."</span>
|
|
||||||
<span class="preprocessor">#else</span>
|
|
||||||
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, less than version 4."</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
<span class="preprocessor">#else</span>
|
|
||||||
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"Not GNU GCC."</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
|
|
||||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
|
|
||||||
<span class="special">{</span>
|
|
||||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">the_compiler</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
|
||||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
|
||||||
<span class="special">}</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
In addition, for each version macro defined there is an <code class="computeroutput"><span class="special">*</span><span class="identifier">_AVAILABLE</span></code> macro defined only when the particular
|
|
||||||
aspect is detected. I.e. a definition equivalent to:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="identifier">BOOST_PREDEF_ABC</span>
|
|
||||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_PREDEF_ABC_AVAILABLE</span>
|
|
||||||
<span class="preprocessor">#endif</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Also for each aspect there is a macro defined with a descriptive name of what
|
|
||||||
the detection is.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.using_the_predefs.h0"></a>
|
|
||||||
<span class="phrase"><a name="predef.using_the_predefs.the_emulated_macros"></a></span><a class="link" href="using_the_predefs.html#predef.using_the_predefs.the_emulated_macros">The
|
|
||||||
<code class="computeroutput"><span class="special">*</span><span class="identifier">_EMULATED</span></code>
|
|
||||||
macros</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
Predef definitions are guaranteed to be uniquely detected within one category.
|
|
||||||
But there are contexts under which multiple underlying detections are possible.
|
|
||||||
The well known example of this is detection of GCC and MSVC compilers which
|
|
||||||
are commonly emulated by other compilers by defining the same base macros.
|
|
||||||
To account for this detection headers are allowed to define <code class="computeroutput"><span class="special">*</span><span class="identifier">_EMULATED</span></code> predefs when this situation is
|
|
||||||
detected. The emulated predefs will be set to the version number of the detection
|
|
||||||
instead of the regular predef macro for that detection. For example MSVC will
|
|
||||||
set <code class="computeroutput"><span class="identifier">BOOST_COMP_MSVC_EMULATED</span></code>
|
|
||||||
but not set <code class="computeroutput"><span class="identifier">BOOST_COM_MSVC</span></code>,
|
|
||||||
and it will also set <code class="computeroutput"><span class="identifier">BOOST_COMP_MSVC_AVAILABLE</span></code>.
|
|
||||||
</p>
|
|
||||||
<h4>
|
|
||||||
<a name="predef.using_the_predefs.h1"></a>
|
|
||||||
<span class="phrase"><a name="predef.using_the_predefs.using_the_boost_version_number_m"></a></span><a class="link" href="using_the_predefs.html#predef.using_the_predefs.using_the_boost_version_number_m">Using the
|
|
||||||
<code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code> macro</a>
|
|
||||||
</h4>
|
|
||||||
<p>
|
|
||||||
All the predefs are defined to be a use of the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>
|
|
||||||
macro. The macro takes individual major, minor, and patch value expressions:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span> <span class="identifier">major</span><span class="special">,</span> <span class="identifier">minor</span><span class="special">,</span> <span class="identifier">patch</span> <span class="special">)</span> <span class="special">...</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
The arguments are:
|
|
||||||
</p>
|
|
||||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
|
||||||
<li class="listitem">
|
|
||||||
Major version number, as a constant value expression in the range [0,99].
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Minor version number, as a constant value expression in the range [0,99].
|
|
||||||
</li>
|
|
||||||
<li class="listitem">
|
|
||||||
Patch-level version number, as a constant value expression in the range
|
|
||||||
[0,99999].
|
|
||||||
</li>
|
|
||||||
</ol></div>
|
|
||||||
<p>
|
|
||||||
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.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The values for the arguments can be any preprocessor valid constant value expression.
|
|
||||||
Only constant value arithmetic is used in the definition of the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code> 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:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">0xA</span><span class="special">,</span><span class="number">015</span><span class="special">)</span>
|
|
||||||
</pre>
|
|
||||||
<p>
|
|
||||||
Is equivalent to:
|
|
||||||
</p>
|
|
||||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">13</span><span class="special">)</span>
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
|
||||||
<td align="left"></td>
|
|
||||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2016 Rene Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
||||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
|
||||||
</p>
|
|
||||||
</div></td>
|
|
||||||
</tr></table>
|
|
||||||
<hr>
|
|
||||||
<div class="spirit-nav">
|
|
||||||
<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="adding_new_predefs.html"><img src="../images/next.png" alt="Next"></a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,10 +1,10 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="refresh" content="0; URL=./doc/html/index.html">
|
<meta http-equiv="refresh" content="0; URL=../../doc/html/predef.html">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
Automatic redirection failed, please go to
|
Automatic redirection failed, please go to
|
||||||
<a href="./doc/html/index.html">./doc/html/index.html</a>
|
<a href="../../doc/html/predef.html">../../doc/html/predef.html</a>
|
||||||
<p>Copyright Rene Rivera 2013-2014</p>
|
<p>Copyright Rene Rivera 2013-2014</p>
|
||||||
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file
|
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file
|
||||||
<a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
<a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
||||||
|