7308 lines
306 KiB
HTML
7308 lines
306 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="generator" content="Asciidoctor 1.5.8">
|
||
<meta name="author" content="Rene Rivera">
|
||
<title>Boost.Predef</title>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
|
||
<style>
|
||
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
|
||
/* Uncomment @import statement below to use as custom stylesheet */
|
||
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
|
||
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
|
||
audio,canvas,video{display:inline-block}
|
||
audio:not([controls]){display:none;height:0}
|
||
script{display:none!important}
|
||
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
|
||
a{background:transparent}
|
||
a:focus{outline:thin dotted}
|
||
a:active,a:hover{outline:0}
|
||
h1{font-size:2em;margin:.67em 0}
|
||
abbr[title]{border-bottom:1px dotted}
|
||
b,strong{font-weight:bold}
|
||
dfn{font-style:italic}
|
||
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
|
||
mark{background:#ff0;color:#000}
|
||
code,kbd,pre,samp{font-family:monospace;font-size:1em}
|
||
pre{white-space:pre-wrap}
|
||
q{quotes:"\201C" "\201D" "\2018" "\2019"}
|
||
small{font-size:80%}
|
||
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
|
||
sup{top:-.5em}
|
||
sub{bottom:-.25em}
|
||
img{border:0}
|
||
svg:not(:root){overflow:hidden}
|
||
figure{margin:0}
|
||
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
|
||
legend{border:0;padding:0}
|
||
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
|
||
button,input{line-height:normal}
|
||
button,select{text-transform:none}
|
||
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
|
||
button[disabled],html input[disabled]{cursor:default}
|
||
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
|
||
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
|
||
textarea{overflow:auto;vertical-align:top}
|
||
table{border-collapse:collapse;border-spacing:0}
|
||
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
|
||
html,body{font-size:100%}
|
||
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
|
||
a:hover{cursor:pointer}
|
||
img,object,embed{max-width:100%;height:auto}
|
||
object,embed{height:100%}
|
||
img{-ms-interpolation-mode:bicubic}
|
||
.left{float:left!important}
|
||
.right{float:right!important}
|
||
.text-left{text-align:left!important}
|
||
.text-right{text-align:right!important}
|
||
.text-center{text-align:center!important}
|
||
.text-justify{text-align:justify!important}
|
||
.hide{display:none}
|
||
img,object,svg{display:inline-block;vertical-align:middle}
|
||
textarea{height:auto;min-height:50px}
|
||
select{width:100%}
|
||
.center{margin-left:auto;margin-right:auto}
|
||
.stretch{width:100%}
|
||
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
|
||
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
|
||
a{color:#2156a5;text-decoration:underline;line-height:inherit}
|
||
a:hover,a:focus{color:#1d4b8f}
|
||
a img{border:none}
|
||
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
|
||
p aside{font-size:.875em;line-height:1.35;font-style:italic}
|
||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
|
||
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
|
||
h1{font-size:2.125em}
|
||
h2{font-size:1.6875em}
|
||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
|
||
h4,h5{font-size:1.125em}
|
||
h6{font-size:1em}
|
||
hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
|
||
em,i{font-style:italic;line-height:inherit}
|
||
strong,b{font-weight:bold;line-height:inherit}
|
||
small{font-size:60%;line-height:inherit}
|
||
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
|
||
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
|
||
ul,ol{margin-left:1.5em}
|
||
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
|
||
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
|
||
ul.square{list-style-type:square}
|
||
ul.circle{list-style-type:circle}
|
||
ul.disc{list-style-type:disc}
|
||
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
|
||
dl dt{margin-bottom:.3125em;font-weight:bold}
|
||
dl dd{margin-bottom:1.25em}
|
||
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
|
||
abbr{text-transform:none}
|
||
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
|
||
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
|
||
blockquote cite::before{content:"\2014 \0020"}
|
||
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
|
||
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
|
||
@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
|
||
h1{font-size:2.75em}
|
||
h2{font-size:2.3125em}
|
||
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
|
||
h4{font-size:1.4375em}}
|
||
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
|
||
table thead,table tfoot{background:#f7f8f7}
|
||
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
|
||
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
|
||
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
|
||
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
|
||
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
|
||
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
|
||
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
|
||
.clearfix::after,.float-group::after{clear:both}
|
||
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
|
||
*:not(pre)>code.nobreak{word-wrap:normal}
|
||
*:not(pre)>code.nowrap{white-space:nowrap}
|
||
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
|
||
em em{font-style:normal}
|
||
strong strong{font-weight:400}
|
||
.keyseq{color:rgba(51,51,51,.8)}
|
||
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
|
||
.keyseq kbd:first-child{margin-left:0}
|
||
.keyseq kbd:last-child{margin-right:0}
|
||
.menuseq,.menuref{color:#000}
|
||
.menuseq b:not(.caret),.menuref{font-weight:inherit}
|
||
.menuseq{word-spacing:-.02em}
|
||
.menuseq b.caret{font-size:1.25em;line-height:.8}
|
||
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
|
||
b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
|
||
b.button::before{content:"[";padding:0 3px 0 2px}
|
||
b.button::after{content:"]";padding:0 2px 0 3px}
|
||
p a>code:hover{color:rgba(0,0,0,.9)}
|
||
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
|
||
#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
|
||
#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
|
||
#content{margin-top:1.25em}
|
||
#content::before{content:none}
|
||
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
|
||
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
|
||
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
|
||
#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
|
||
#header .details span:first-child{margin-left:-.125em}
|
||
#header .details span.email a{color:rgba(0,0,0,.85)}
|
||
#header .details br{display:none}
|
||
#header .details br+span::before{content:"\00a0\2013\00a0"}
|
||
#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
|
||
#header .details br+span#revremark::before{content:"\00a0|\00a0"}
|
||
#header #revnumber{text-transform:capitalize}
|
||
#header #revnumber::after{content:"\00a0"}
|
||
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
|
||
#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
|
||
#toc>ul{margin-left:.125em}
|
||
#toc ul.sectlevel0>li>a{font-style:italic}
|
||
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
|
||
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
|
||
#toc li{line-height:1.3334;margin-top:.3334em}
|
||
#toc a{text-decoration:none}
|
||
#toc a:active{text-decoration:underline}
|
||
#toctitle{color:#7a2518;font-size:1.2em}
|
||
@media screen and (min-width:768px){#toctitle{font-size:1.375em}
|
||
body.toc2{padding-left:15em;padding-right:0}
|
||
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
|
||
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
|
||
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
|
||
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
|
||
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
|
||
body.toc2.toc-right{padding-left:0;padding-right:15em}
|
||
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
|
||
@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
|
||
#toc.toc2{width:20em}
|
||
#toc.toc2 #toctitle{font-size:1.375em}
|
||
#toc.toc2>ul{font-size:.95em}
|
||
#toc.toc2 ul ul{padding-left:1.25em}
|
||
body.toc2.toc-right{padding-left:0;padding-right:20em}}
|
||
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
|
||
#content #toc>:first-child{margin-top:0}
|
||
#content #toc>:last-child{margin-bottom:0}
|
||
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
|
||
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
|
||
#content{margin-bottom:.625em}
|
||
.sect1{padding-bottom:.625em}
|
||
@media screen and (min-width:768px){#content{margin-bottom:1.25em}
|
||
.sect1{padding-bottom:1.25em}}
|
||
.sect1:last-child{padding-bottom:0}
|
||
.sect1+.sect1{border-top:1px solid #e7e7e9}
|
||
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
|
||
#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
|
||
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
|
||
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
|
||
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
|
||
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
|
||
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
|
||
table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
|
||
.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
|
||
table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
|
||
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
|
||
.admonitionblock>table td.icon{text-align:center;width:80px}
|
||
.admonitionblock>table td.icon img{max-width:none}
|
||
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
|
||
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
|
||
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
|
||
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
|
||
.exampleblock>.content>:first-child{margin-top:0}
|
||
.exampleblock>.content>:last-child{margin-bottom:0}
|
||
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
|
||
.sidebarblock>:first-child{margin-top:0}
|
||
.sidebarblock>:last-child{margin-bottom:0}
|
||
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
|
||
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
|
||
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
|
||
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
|
||
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
|
||
@media screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
|
||
@media screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
|
||
.literalblock pre.nowrap,.literalblock pre.nowrap pre,.listingblock pre.nowrap,.listingblock pre.nowrap pre{white-space:pre;word-wrap:normal}
|
||
.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
|
||
.listingblock pre.highlightjs{padding:0}
|
||
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
|
||
.listingblock pre.prettyprint{border-width:0}
|
||
.listingblock>.content{position:relative}
|
||
.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
|
||
.listingblock:hover code[data-lang]::before{display:block}
|
||
.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:#999}
|
||
.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
|
||
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
|
||
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
|
||
table.pyhltable td.code{padding-left:.75em;padding-right:0}
|
||
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #dddddf}
|
||
pre.pygments .lineno{display:inline-block;margin-right:.25em}
|
||
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
|
||
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
|
||
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
|
||
.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
|
||
.quoteblock blockquote{margin:0;padding:0;border:0}
|
||
.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
|
||
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
|
||
.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
|
||
.verseblock{margin:0 1em 1.25em}
|
||
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
|
||
.verseblock pre strong{font-weight:400}
|
||
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
|
||
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
|
||
.quoteblock .attribution br,.verseblock .attribution br{display:none}
|
||
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
|
||
.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
|
||
.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
|
||
.quoteblock.abstract{margin:0 1em 1.25em;display:block}
|
||
.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
|
||
.quoteblock.excerpt,.quoteblock .quoteblock{margin:0 0 1.25em;padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
|
||
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
|
||
.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
|
||
table.tableblock{max-width:100%;border-collapse:separate}
|
||
p.tableblock:last-child{margin-bottom:0}
|
||
td.tableblock>.content{margin-bottom:-1.25em}
|
||
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
|
||
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
|
||
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
|
||
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
|
||
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
|
||
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
|
||
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
|
||
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
|
||
table.frame-all{border-width:1px}
|
||
table.frame-sides{border-width:0 1px}
|
||
table.frame-topbot,table.frame-ends{border-width:1px 0}
|
||
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd){background:#f8f8f7}
|
||
table.stripes-none tr,table.stripes-odd tr:nth-of-type(even){background:none}
|
||
th.halign-left,td.halign-left{text-align:left}
|
||
th.halign-right,td.halign-right{text-align:right}
|
||
th.halign-center,td.halign-center{text-align:center}
|
||
th.valign-top,td.valign-top{vertical-align:top}
|
||
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
|
||
th.valign-middle,td.valign-middle{vertical-align:middle}
|
||
table thead th,table tfoot th{font-weight:bold}
|
||
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
|
||
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
|
||
p.tableblock>code:only-child{background:none;padding:0}
|
||
p.tableblock{font-size:1em}
|
||
td>div.verse{white-space:pre}
|
||
ol{margin-left:1.75em}
|
||
ul li ol{margin-left:1.5em}
|
||
dl dd{margin-left:1.125em}
|
||
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
|
||
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
|
||
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
|
||
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
|
||
ul.unstyled,ol.unstyled{margin-left:0}
|
||
ul.checklist{margin-left:.625em}
|
||
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
|
||
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
|
||
ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
|
||
ul.inline>li{margin-left:1.25em}
|
||
.unstyled dl dt{font-weight:400;font-style:normal}
|
||
ol.arabic{list-style-type:decimal}
|
||
ol.decimal{list-style-type:decimal-leading-zero}
|
||
ol.loweralpha{list-style-type:lower-alpha}
|
||
ol.upperalpha{list-style-type:upper-alpha}
|
||
ol.lowerroman{list-style-type:lower-roman}
|
||
ol.upperroman{list-style-type:upper-roman}
|
||
ol.lowergreek{list-style-type:lower-greek}
|
||
.hdlist>table,.colist>table{border:0;background:none}
|
||
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
|
||
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
|
||
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
|
||
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
|
||
.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
|
||
.colist td:not([class]):first-child img{max-width:none}
|
||
.colist td:not([class]):last-child{padding:.25em 0}
|
||
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
|
||
.imageblock.left{margin:.25em .625em 1.25em 0}
|
||
.imageblock.right{margin:.25em 0 1.25em .625em}
|
||
.imageblock>.title{margin-bottom:0}
|
||
.imageblock.thumb,.imageblock.th{border-width:6px}
|
||
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
|
||
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
|
||
.image.left{margin-right:.625em}
|
||
.image.right{margin-left:.625em}
|
||
a.image{text-decoration:none;display:inline-block}
|
||
a.image object{pointer-events:none}
|
||
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
|
||
sup.footnote a,sup.footnoteref a{text-decoration:none}
|
||
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
|
||
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
|
||
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
|
||
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
|
||
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
|
||
#footnotes .footnote:last-of-type{margin-bottom:0}
|
||
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
|
||
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
|
||
.gist .file-data>table td.line-data{width:99%}
|
||
div.unbreakable{page-break-inside:avoid}
|
||
.big{font-size:larger}
|
||
.small{font-size:smaller}
|
||
.underline{text-decoration:underline}
|
||
.overline{text-decoration:overline}
|
||
.line-through{text-decoration:line-through}
|
||
.aqua{color:#00bfbf}
|
||
.aqua-background{background-color:#00fafa}
|
||
.black{color:#000}
|
||
.black-background{background-color:#000}
|
||
.blue{color:#0000bf}
|
||
.blue-background{background-color:#0000fa}
|
||
.fuchsia{color:#bf00bf}
|
||
.fuchsia-background{background-color:#fa00fa}
|
||
.gray{color:#606060}
|
||
.gray-background{background-color:#7d7d7d}
|
||
.green{color:#006000}
|
||
.green-background{background-color:#007d00}
|
||
.lime{color:#00bf00}
|
||
.lime-background{background-color:#00fa00}
|
||
.maroon{color:#600000}
|
||
.maroon-background{background-color:#7d0000}
|
||
.navy{color:#000060}
|
||
.navy-background{background-color:#00007d}
|
||
.olive{color:#606000}
|
||
.olive-background{background-color:#7d7d00}
|
||
.purple{color:#600060}
|
||
.purple-background{background-color:#7d007d}
|
||
.red{color:#bf0000}
|
||
.red-background{background-color:#fa0000}
|
||
.silver{color:#909090}
|
||
.silver-background{background-color:#bcbcbc}
|
||
.teal{color:#006060}
|
||
.teal-background{background-color:#007d7d}
|
||
.white{color:#bfbfbf}
|
||
.white-background{background-color:#fafafa}
|
||
.yellow{color:#bfbf00}
|
||
.yellow-background{background-color:#fafa00}
|
||
span.icon>.fa{cursor:default}
|
||
a span.icon>.fa{cursor:inherit}
|
||
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
|
||
.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
|
||
.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
|
||
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
|
||
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
|
||
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
|
||
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
|
||
.conum[data-value] *{color:#fff!important}
|
||
.conum[data-value]+b{display:none}
|
||
.conum[data-value]::after{content:attr(data-value)}
|
||
pre .conum[data-value]{position:relative;top:-.125em}
|
||
b.conum *{color:inherit!important}
|
||
.conum:not([data-value]):empty{display:none}
|
||
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
|
||
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
|
||
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
|
||
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
|
||
p{margin-bottom:1.25rem}
|
||
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
|
||
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
|
||
.print-only{display:none!important}
|
||
@page{margin:1.25cm .75cm}
|
||
@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
|
||
html{font-size:80%}
|
||
a{color:inherit!important;text-decoration:underline!important}
|
||
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
|
||
a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
|
||
abbr[title]::after{content:" (" attr(title) ")"}
|
||
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
|
||
thead{display:table-header-group}
|
||
svg{max-width:100%}
|
||
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
|
||
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
|
||
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
|
||
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
|
||
body.book #header{text-align:center}
|
||
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
|
||
body.book #header .details{border:0!important;display:block;padding:0!important}
|
||
body.book #header .details span:first-child{margin-left:0!important}
|
||
body.book #header .details br{display:block}
|
||
body.book #header .details br+span::before{content:none!important}
|
||
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
|
||
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
|
||
.listingblock code[data-lang]::before{display:block}
|
||
#footer{padding:0 .9375em}
|
||
.hide-on-print{display:none!important}
|
||
.print-only{display:block!important}
|
||
.hide-for-print{display:none!important}
|
||
.show-for-print{display:inherit!important}}
|
||
@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
|
||
.sect1{padding:0!important}
|
||
.sect1+.sect1{border:0}
|
||
#footer{background:none}
|
||
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
|
||
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
|
||
</style>
|
||
<style>
|
||
.listingblock .pygments .hll { background-color: #ffffcc }
|
||
.listingblock .pygments, .listingblock .pygments code { background: #f8f8f8; }
|
||
.listingblock .pygments .tok-c { color: #408080; font-style: italic } /* Comment */
|
||
.listingblock .pygments .tok-err { border: 1px solid #FF0000 } /* Error */
|
||
.listingblock .pygments .tok-k { color: #008000; font-weight: bold } /* Keyword */
|
||
.listingblock .pygments .tok-o { color: #666666 } /* Operator */
|
||
.listingblock .pygments .tok-ch { color: #408080; font-style: italic } /* Comment.Hashbang */
|
||
.listingblock .pygments .tok-cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||
.listingblock .pygments .tok-cp { color: #BC7A00 } /* Comment.Preproc */
|
||
.listingblock .pygments .tok-cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
|
||
.listingblock .pygments .tok-c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||
.listingblock .pygments .tok-cs { color: #408080; font-style: italic } /* Comment.Special */
|
||
.listingblock .pygments .tok-gd { color: #A00000 } /* Generic.Deleted */
|
||
.listingblock .pygments .tok-ge { font-style: italic } /* Generic.Emph */
|
||
.listingblock .pygments .tok-gr { color: #FF0000 } /* Generic.Error */
|
||
.listingblock .pygments .tok-gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||
.listingblock .pygments .tok-gi { color: #00A000 } /* Generic.Inserted */
|
||
.listingblock .pygments .tok-go { color: #888888 } /* Generic.Output */
|
||
.listingblock .pygments .tok-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||
.listingblock .pygments .tok-gs { font-weight: bold } /* Generic.Strong */
|
||
.listingblock .pygments .tok-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||
.listingblock .pygments .tok-gt { color: #0044DD } /* Generic.Traceback */
|
||
.listingblock .pygments .tok-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||
.listingblock .pygments .tok-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||
.listingblock .pygments .tok-kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
||
.listingblock .pygments .tok-kp { color: #008000 } /* Keyword.Pseudo */
|
||
.listingblock .pygments .tok-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||
.listingblock .pygments .tok-kt { color: #B00040 } /* Keyword.Type */
|
||
.listingblock .pygments .tok-m { color: #666666 } /* Literal.Number */
|
||
.listingblock .pygments .tok-s { color: #BA2121 } /* Literal.String */
|
||
.listingblock .pygments .tok-na { color: #7D9029 } /* Name.Attribute */
|
||
.listingblock .pygments .tok-nb { color: #008000 } /* Name.Builtin */
|
||
.listingblock .pygments .tok-nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||
.listingblock .pygments .tok-no { color: #880000 } /* Name.Constant */
|
||
.listingblock .pygments .tok-nd { color: #AA22FF } /* Name.Decorator */
|
||
.listingblock .pygments .tok-ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||
.listingblock .pygments .tok-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||
.listingblock .pygments .tok-nf { color: #0000FF } /* Name.Function */
|
||
.listingblock .pygments .tok-nl { color: #A0A000 } /* Name.Label */
|
||
.listingblock .pygments .tok-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||
.listingblock .pygments .tok-nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||
.listingblock .pygments .tok-nv { color: #19177C } /* Name.Variable */
|
||
.listingblock .pygments .tok-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||
.listingblock .pygments .tok-w { color: #bbbbbb } /* Text.Whitespace */
|
||
.listingblock .pygments .tok-mb { color: #666666 } /* Literal.Number.Bin */
|
||
.listingblock .pygments .tok-mf { color: #666666 } /* Literal.Number.Float */
|
||
.listingblock .pygments .tok-mh { color: #666666 } /* Literal.Number.Hex */
|
||
.listingblock .pygments .tok-mi { color: #666666 } /* Literal.Number.Integer */
|
||
.listingblock .pygments .tok-mo { color: #666666 } /* Literal.Number.Oct */
|
||
.listingblock .pygments .tok-sa { color: #BA2121 } /* Literal.String.Affix */
|
||
.listingblock .pygments .tok-sb { color: #BA2121 } /* Literal.String.Backtick */
|
||
.listingblock .pygments .tok-sc { color: #BA2121 } /* Literal.String.Char */
|
||
.listingblock .pygments .tok-dl { color: #BA2121 } /* Literal.String.Delimiter */
|
||
.listingblock .pygments .tok-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||
.listingblock .pygments .tok-s2 { color: #BA2121 } /* Literal.String.Double */
|
||
.listingblock .pygments .tok-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||
.listingblock .pygments .tok-sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||
.listingblock .pygments .tok-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
||
.listingblock .pygments .tok-sx { color: #008000 } /* Literal.String.Other */
|
||
.listingblock .pygments .tok-sr { color: #BB6688 } /* Literal.String.Regex */
|
||
.listingblock .pygments .tok-s1 { color: #BA2121 } /* Literal.String.Single */
|
||
.listingblock .pygments .tok-ss { color: #19177C } /* Literal.String.Symbol */
|
||
.listingblock .pygments .tok-bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||
.listingblock .pygments .tok-fm { color: #0000FF } /* Name.Function.Magic */
|
||
.listingblock .pygments .tok-vc { color: #19177C } /* Name.Variable.Class */
|
||
.listingblock .pygments .tok-vg { color: #19177C } /* Name.Variable.Global */
|
||
.listingblock .pygments .tok-vi { color: #19177C } /* Name.Variable.Instance */
|
||
.listingblock .pygments .tok-vm { color: #19177C } /* Name.Variable.Magic */
|
||
.listingblock .pygments .tok-il { color: #666666 } /* Literal.Number.Integer.Long */
|
||
</style>
|
||
</head>
|
||
<body class="article toc2 toc-left">
|
||
<div id="header">
|
||
<h1>Boost.Predef</h1>
|
||
<div class="details">
|
||
<span id="author" class="author">Rene Rivera</span><br>
|
||
</div>
|
||
<div id="toc" class="toc2">
|
||
<div id="toctitle">Table of Contents</div>
|
||
<ul class="sectlevel1">
|
||
<li><a href="#_introduction">1. Introduction</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_proposal">1.1. Proposal</a></li>
|
||
<li><a href="#_current_library">1.2. Current Library</a></li>
|
||
<li><a href="#_design_choices">1.3. Design choices</a></li>
|
||
<li><a href="#_future_work">1.4. Future work</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_using_the_predefs">2. Using the predefs</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_the_emulated_macros">2.1. The <code>*_EMULATED</code> macros</a></li>
|
||
<li><a href="#_using_the_boost_version_number_macro">2.2. Using the <code>BOOST_VERSION_NUMBER</code> macro</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_adding_new_predefs">3. Adding new predefs</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_requirements_of_the_header">3.1. Requirements of the header</a></li>
|
||
<li><a href="#_structure_of_the_header">3.2. Structure of the header</a></li>
|
||
<li><a href="#_adding_exclusive_predefs">3.3. Adding exclusive predefs</a></li>
|
||
<li><a href="#_adding_an_exclusive_but_emulated_predef">3.4. Adding an exclusive but emulated predef</a></li>
|
||
<li><a href="#_using_utility_pattern_macros">3.5. Using utility pattern macros</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_reference">4. Reference</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_boost_arch_architecture_macros">4.1. <code>BOOST_ARCH</code> architecture macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_arch_alpha">4.1.1. <code>BOOST_ARCH_ALPHA</code></a></li>
|
||
<li><a href="#_boost_arch_arm">4.1.2. <code>BOOST_ARCH_ARM</code></a></li>
|
||
<li><a href="#_boost_arch_blackfin">4.1.3. <code>BOOST_ARCH_BLACKFIN</code></a></li>
|
||
<li><a href="#_boost_arch_convex">4.1.4. <code>BOOST_ARCH_CONVEX</code></a></li>
|
||
<li><a href="#_boost_arch_e2k">4.1.5. <code>BOOST_ARCH_E2K</code></a></li>
|
||
<li><a href="#_boost_arch_ia64">4.1.6. <code>BOOST_ARCH_IA64</code></a></li>
|
||
<li><a href="#_boost_arch_m68k">4.1.7. <code>BOOST_ARCH_M68K</code></a></li>
|
||
<li><a href="#_boost_arch_mips">4.1.8. <code>BOOST_ARCH_MIPS</code></a></li>
|
||
<li><a href="#_boost_arch_parisc">4.1.9. <code>BOOST_ARCH_PARISC</code></a></li>
|
||
<li><a href="#_boost_arch_ppc">4.1.10. <code>BOOST_ARCH_PPC</code></a></li>
|
||
<li><a href="#_boost_arch_ppc_64">4.1.11. <code>BOOST_ARCH_PPC_64</code></a></li>
|
||
<li><a href="#_boost_arch_ptx">4.1.12. <code>BOOST_ARCH_PTX</code></a></li>
|
||
<li><a href="#_boost_arch_pyramid">4.1.13. <code>BOOST_ARCH_PYRAMID</code></a></li>
|
||
<li><a href="#_boost_arch_riscv">4.1.14. <code>BOOST_ARCH_RISCV</code></a></li>
|
||
<li><a href="#_boost_arch_rs6000">4.1.15. <code>BOOST_ARCH_RS6000</code></a></li>
|
||
<li><a href="#_boost_arch_sparc">4.1.16. <code>BOOST_ARCH_SPARC</code></a></li>
|
||
<li><a href="#_boost_arch_sh">4.1.17. <code>BOOST_ARCH_SH</code></a></li>
|
||
<li><a href="#_boost_arch_sys370">4.1.18. <code>BOOST_ARCH_SYS370</code></a></li>
|
||
<li><a href="#_boost_arch_sys390">4.1.19. <code>BOOST_ARCH_SYS390</code></a></li>
|
||
<li><a href="#_boost_arch_x86">4.1.20. <code>BOOST_ARCH_X86</code></a></li>
|
||
<li><a href="#_boost_arch_z">4.1.21. <code>BOOST_ARCH_Z</code></a></li>
|
||
<li><a href="#_boost_arch_x86_32">4.1.22. <code>BOOST_ARCH_X86_32</code></a></li>
|
||
<li><a href="#_boost_arch_x86_64">4.1.23. <code>BOOST_ARCH_X86_64</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_comp_compiler_macros">4.2. <code>BOOST_COMP</code> compiler macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_comp_borland">4.2.1. <code>BOOST_COMP_BORLAND</code></a></li>
|
||
<li><a href="#_boost_comp_clang">4.2.2. <code>BOOST_COMP_CLANG</code></a></li>
|
||
<li><a href="#_boost_comp_como">4.2.3. <code>BOOST_COMP_COMO</code></a></li>
|
||
<li><a href="#_boost_comp_dec">4.2.4. <code>BOOST_COMP_DEC</code></a></li>
|
||
<li><a href="#_boost_comp_diab">4.2.5. <code>BOOST_COMP_DIAB</code></a></li>
|
||
<li><a href="#_boost_comp_dmc">4.2.6. <code>BOOST_COMP_DMC</code></a></li>
|
||
<li><a href="#_boost_comp_sysc">4.2.7. <code>BOOST_COMP_SYSC</code></a></li>
|
||
<li><a href="#_boost_comp_edg">4.2.8. <code>BOOST_COMP_EDG</code></a></li>
|
||
<li><a href="#_boost_comp_path">4.2.9. <code>BOOST_COMP_PATH</code></a></li>
|
||
<li><a href="#_boost_comp_gnuc">4.2.10. <code>BOOST_COMP_GNUC</code></a></li>
|
||
<li><a href="#_boost_comp_gccxml">4.2.11. <code>BOOST_COMP_GCCXML</code></a></li>
|
||
<li><a href="#_boost_comp_ghs">4.2.12. <code>BOOST_COMP_GHS</code></a></li>
|
||
<li><a href="#_boost_comp_hpacc">4.2.13. <code>BOOST_COMP_HPACC</code></a></li>
|
||
<li><a href="#_boost_comp_iar">4.2.14. <code>BOOST_COMP_IAR</code></a></li>
|
||
<li><a href="#_boost_comp_ibm">4.2.15. <code>BOOST_COMP_IBM</code></a></li>
|
||
<li><a href="#_boost_comp_intel">4.2.16. <code>BOOST_COMP_INTEL</code></a></li>
|
||
<li><a href="#_boost_comp_kcc">4.2.17. <code>BOOST_COMP_KCC</code></a></li>
|
||
<li><a href="#_boost_comp_llvm">4.2.18. <code>BOOST_COMP_LLVM</code></a></li>
|
||
<li><a href="#_boost_comp_highc">4.2.19. <code>BOOST_COMP_HIGHC</code></a></li>
|
||
<li><a href="#_boost_comp_mwerks">4.2.20. <code>BOOST_COMP_MWERKS</code></a></li>
|
||
<li><a href="#_boost_comp_mri">4.2.21. <code>BOOST_COMP_MRI</code></a></li>
|
||
<li><a href="#_boost_comp_mpw">4.2.22. <code>BOOST_COMP_MPW</code></a></li>
|
||
<li><a href="#_boost_comp_nvcc">4.2.23. <code>BOOST_COMP_NVCC</code></a></li>
|
||
<li><a href="#_boost_comp_palm">4.2.24. <code>BOOST_COMP_PALM</code></a></li>
|
||
<li><a href="#_boost_comp_pgi">4.2.25. <code>BOOST_COMP_PGI</code></a></li>
|
||
<li><a href="#_boost_comp_sgi">4.2.26. <code>BOOST_COMP_SGI</code></a></li>
|
||
<li><a href="#_boost_comp_sunpro">4.2.27. <code>BOOST_COMP_SUNPRO</code></a></li>
|
||
<li><a href="#_boost_comp_tendra">4.2.28. <code>BOOST_COMP_TENDRA</code></a></li>
|
||
<li><a href="#_boost_comp_msvc">4.2.29. <code>BOOST_COMP_MSVC</code></a></li>
|
||
<li><a href="#_boost_comp_watcom">4.2.30. <code>BOOST_COMP_WATCOM</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_lang_language_standards_macros">4.3. <code>BOOST_LANG</code> language standards macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_lang_cuda">4.3.1. <code>BOOST_LANG_CUDA</code></a></li>
|
||
<li><a href="#_boost_lang_objc">4.3.2. <code>BOOST_LANG_OBJC</code></a></li>
|
||
<li><a href="#_boost_lang_stdc">4.3.3. <code>BOOST_LANG_STDC</code></a></li>
|
||
<li><a href="#_boost_lang_stdcpp">4.3.4. <code>BOOST_LANG_STDCPP</code></a></li>
|
||
<li><a href="#_boost_lang_stdcppcli">4.3.5. <code>BOOST_LANG_STDCPPCLI</code></a></li>
|
||
<li><a href="#_boost_lang_stdecpp">4.3.6. <code>BOOST_LANG_STDECPP</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_lib_library_macros">4.4. <code>BOOST_LIB</code> library macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_lib_c_cloudabi">4.4.1. <code>BOOST_LIB_C_CLOUDABI</code></a></li>
|
||
<li><a href="#_boost_lib_c_gnu">4.4.2. <code>BOOST_LIB_C_GNU</code></a></li>
|
||
<li><a href="#_boost_lib_c_uc">4.4.3. <code>BOOST_LIB_C_UC</code></a></li>
|
||
<li><a href="#_boost_lib_c_vms">4.4.4. <code>BOOST_LIB_C_VMS</code></a></li>
|
||
<li><a href="#_boost_lib_c_zos">4.4.5. <code>BOOST_LIB_C_ZOS</code></a></li>
|
||
<li><a href="#_boost_lib_std_cxx">4.4.6. <code>BOOST_LIB_STD_CXX</code></a></li>
|
||
<li><a href="#_boost_lib_std_dinkumware">4.4.7. <code>BOOST_LIB_STD_DINKUMWARE</code></a></li>
|
||
<li><a href="#_boost_lib_std_como">4.4.8. <code>BOOST_LIB_STD_COMO</code></a></li>
|
||
<li><a href="#_boost_lib_std_msipl">4.4.9. <code>BOOST_LIB_STD_MSIPL</code></a></li>
|
||
<li><a href="#_boost_lib_std_msl">4.4.10. <code>BOOST_LIB_STD_MSL</code></a></li>
|
||
<li><a href="#_boost_lib_std_rw">4.4.11. <code>BOOST_LIB_STD_RW</code></a></li>
|
||
<li><a href="#_boost_lib_std_sgi">4.4.12. <code>BOOST_LIB_STD_SGI</code></a></li>
|
||
<li><a href="#_boost_lib_std_gnu">4.4.13. <code>BOOST_LIB_STD_GNU</code></a></li>
|
||
<li><a href="#_boost_lib_std_stlport">4.4.14. <code>BOOST_LIB_STD_STLPORT</code></a></li>
|
||
<li><a href="#_boost_lib_std_ibm">4.4.15. <code>BOOST_LIB_STD_IBM</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_os_operating_system_macros">4.5. <code>BOOST_OS</code> operating system macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_os_aix">4.5.1. <code>BOOST_OS_AIX</code></a></li>
|
||
<li><a href="#_boost_os_amigaos">4.5.2. <code>BOOST_OS_AMIGAOS</code></a></li>
|
||
<li><a href="#_boost_os_beos">4.5.3. <code>BOOST_OS_BEOS</code></a></li>
|
||
<li><a href="#_boost_os_bsd">4.5.4. <code>BOOST_OS_BSD</code></a></li>
|
||
<li><a href="#_boost_os_cygwin">4.5.5. <code>BOOST_OS_CYGWIN</code></a></li>
|
||
<li><a href="#_boost_os_haiku">4.5.6. <code>BOOST_OS_HAIKU</code></a></li>
|
||
<li><a href="#_boost_os_hpux">4.5.7. <code>BOOST_OS_HPUX</code></a></li>
|
||
<li><a href="#_boost_os_ios">4.5.8. <code>BOOST_OS_IOS</code></a></li>
|
||
<li><a href="#_boost_os_irix">4.5.9. <code>BOOST_OS_IRIX</code></a></li>
|
||
<li><a href="#_boost_os_linux">4.5.10. <code>BOOST_OS_LINUX</code></a></li>
|
||
<li><a href="#_boost_os_macos">4.5.11. <code>BOOST_OS_MACOS</code></a></li>
|
||
<li><a href="#_boost_os_os400">4.5.12. <code>BOOST_OS_OS400</code></a></li>
|
||
<li><a href="#_boost_os_qnx">4.5.13. <code>BOOST_OS_QNX</code></a></li>
|
||
<li><a href="#_boost_os_solaris">4.5.14. <code>BOOST_OS_SOLARIS</code></a></li>
|
||
<li><a href="#_boost_os_unix">4.5.15. <code>BOOST_OS_UNIX</code></a></li>
|
||
<li><a href="#_boost_os_svr4">4.5.16. <code>BOOST_OS_SVR4</code></a></li>
|
||
<li><a href="#_boost_os_vms">4.5.17. <code>BOOST_OS_VMS</code></a></li>
|
||
<li><a href="#_boost_os_windows">4.5.18. <code>BOOST_OS_WINDOWS</code></a></li>
|
||
<li><a href="#_boost_os_bsd_bsdi">4.5.19. <code>BOOST_OS_BSD_BSDI</code></a></li>
|
||
<li><a href="#_boost_os_bsd_dragonfly">4.5.20. <code>BOOST_OS_BSD_DRAGONFLY</code></a></li>
|
||
<li><a href="#_boost_os_bsd_free">4.5.21. <code>BOOST_OS_BSD_FREE</code></a></li>
|
||
<li><a href="#_boost_os_bsd_net">4.5.22. <code>BOOST_OS_BSD_NET</code></a></li>
|
||
<li><a href="#_boost_os_bsd_open">4.5.23. <code>BOOST_OS_BSD_OPEN</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_plat_platform_macros">4.6. <code>BOOST_PLAT</code> platform macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_plat_android">4.6.1. <code>BOOST_PLAT_ANDROID</code></a></li>
|
||
<li><a href="#_boost_plat_cloudabi">4.6.2. <code>BOOST_PLAT_CLOUDABI</code></a></li>
|
||
<li><a href="#_boost_plat_ios_device">4.6.3. <code>BOOST_PLAT_IOS_DEVICE</code></a></li>
|
||
<li><a href="#_boost_plat_ios_simulator">4.6.4. <code>BOOST_PLAT_IOS_SIMULATOR</code></a></li>
|
||
<li><a href="#_boost_plat_mingw">4.6.5. <code>BOOST_PLAT_MINGW</code></a></li>
|
||
<li><a href="#_boost_plat_mingw32">4.6.6. <code>BOOST_PLAT_MINGW32</code></a></li>
|
||
<li><a href="#_boost_plat_mingw64">4.6.7. <code>BOOST_PLAT_MINGW64</code></a></li>
|
||
<li><a href="#_boost_plat_windows_desktop">4.6.8. <code>BOOST_PLAT_WINDOWS_DESKTOP</code></a></li>
|
||
<li><a href="#_boost_plat_windows_phone">4.6.9. <code>BOOST_PLAT_WINDOWS_PHONE</code></a></li>
|
||
<li><a href="#_boost_plat_windows_runtime">4.6.10. <code>BOOST_PLAT_WINDOWS_RUNTIME</code></a></li>
|
||
<li><a href="#_boost_plat_windows_server">4.6.11. <code>BOOST_PLAT_WINDOWS_SERVER</code></a></li>
|
||
<li><a href="#_boost_plat_windows_store">4.6.12. <code>BOOST_PLAT_WINDOWS_STORE</code></a></li>
|
||
<li><a href="#_boost_plat_windows_system">4.6.13. <code>BOOST_PLAT_WINDOWS_SYSTEM</code></a></li>
|
||
<li><a href="#_boost_plat_windows_uwp">4.6.14. <code>BOOST_PLAT_WINDOWS_UWP</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_boost_hw_hardware_macros">4.7. <code>BOOST_HW</code> hardware macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_using_the_boost_hw_simd_predefs">4.7.1. Using the <code>BOOST_HW_SIMD_*</code> predefs</a></li>
|
||
<li><a href="#_boost_hw_simd_arm">4.7.2. <code>BOOST_HW_SIMD_ARM</code></a></li>
|
||
<li><a href="#_boost_hw_simd_arm_version">4.7.3. <code>BOOST_HW_SIMD_ARM_*_VERSION</code></a></li>
|
||
<li><a href="#_boost_hw_simd_ppc">4.7.4. <code>BOOST_HW_SIMD_PPC</code></a></li>
|
||
<li><a href="#_boost_hw_simd_ppc_version">4.7.5. <code>BOOST_HW_SIMD_PPC_*_VERSION</code></a></li>
|
||
<li><a href="#_boost_hw_simd_x86">4.7.6. <code>BOOST_HW_SIMD_X86</code></a></li>
|
||
<li><a href="#_boost_hw_simd_x86_version">4.7.7. <code>BOOST_HW_SIMD_X86_*_VERSION</code></a></li>
|
||
<li><a href="#_boost_hw_simd_x86_amd">4.7.8. <code>BOOST_HW_SIMD_X86_AMD</code></a></li>
|
||
<li><a href="#_boost_hw_simd_x86_amd_version">4.7.9. <code>BOOST_HW_SIMD_X86_AMD_*_VERSION</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_other_macros">4.8. Other macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_endian">4.8.1. <code>BOOST_ENDIAN_*</code></a></li>
|
||
<li><a href="#_boost_arch_word_bits">4.8.2. <code>BOOST_ARCH_WORD_BITS</code></a></li>
|
||
<li><a href="#_boost_predef_workaround">4.8.3. <code>BOOST_PREDEF_WORKAROUND</code></a></li>
|
||
<li><a href="#_boost_predef_tested_at">4.8.4. <code>BOOST_PREDEF_TESTED_AT</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_version_definition_macros">4.9. Version definition macros</a>
|
||
<ul class="sectlevel3">
|
||
<li><a href="#_boost_version_number">4.9.1. <code>BOOST_VERSION_NUMBER</code></a></li>
|
||
<li><a href="#_boost_predef_make_macros">4.9.2. <code>BOOST_PREDEF_MAKE_..</code> macros</a></li>
|
||
<li><a href="#_boost_predef_make_date_macros">4.9.3. <code>BOOST_PREDEF_MAKE_*..</code> date macros</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_check_utilities">5. Check Utilities</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_predef_check_programs">5.1. <code>predef_check</code> programs</a></li>
|
||
<li><a href="#_using_with_boost_build">5.2. Using with Boost.Build</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_history">6. History</a>
|
||
<ul class="sectlevel2">
|
||
<li><a href="#_1_13">6.1. 1.13</a></li>
|
||
<li><a href="#_1_12">6.2. 1.12</a></li>
|
||
<li><a href="#_1_11">6.3. 1.11</a></li>
|
||
<li><a href="#_1_10">6.4. 1.10</a></li>
|
||
<li><a href="#_1_9">6.5. 1.9</a></li>
|
||
<li><a href="#_1_8">6.6. 1.8</a></li>
|
||
<li><a href="#_1_7">6.7. 1.7</a></li>
|
||
<li><a href="#_1_6">6.8. 1.6</a></li>
|
||
<li><a href="#_1_5">6.9. 1.5</a></li>
|
||
<li><a href="#_1_4_1">6.10. 1.4.1</a></li>
|
||
<li><a href="#_1_4">6.11. 1.4</a></li>
|
||
<li><a href="#_1_3">6.12. 1.3</a></li>
|
||
<li><a href="#_1_2">6.13. 1.2</a></li>
|
||
<li><a href="#_1_1">6.14. 1.1</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#_to_do">7. To Do</a></li>
|
||
<li><a href="#_acknowledgements">8. Acknowledgements</a></li>
|
||
<li><a href="#_colophon">Colophon</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div id="content">
|
||
<div id="preamble">
|
||
<div class="sectionbody">
|
||
<style>
|
||
/*
|
||
Copyright 2018-2019 Rene Rivera
|
||
Distributed under the Boost Software License, Version 1.0.
|
||
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||
*/
|
||
.admonitionblock .icon .title {
|
||
font-size: 2.5em;
|
||
text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
|
||
}
|
||
.caution .icon .title {
|
||
color: rgba(192, 51, 0, 1);
|
||
}
|
||
.important .icon .title {
|
||
color: rgba(192, 0, 0, 1);
|
||
}
|
||
.note .icon .title {
|
||
color: rgba(26, 64, 128, 1);
|
||
}
|
||
.tip .icon .title {
|
||
color: rgba(255, 192, 0, 1);
|
||
}
|
||
.warning .icon .title {
|
||
color: rgba(192, 102, 0, 1);
|
||
}
|
||
p,blockquote,dt,td.content,span.alt {
|
||
font-size: 1.1rem
|
||
}
|
||
h1, h2, h3, h4, h5, h6 {
|
||
font-weight: bold;
|
||
}
|
||
h1 {
|
||
font-size: 2.25em;
|
||
}
|
||
h2 {
|
||
font-size: 1.5em;
|
||
}
|
||
h3,#toctitle,.sidebarblock>.content>.title {
|
||
font-size: 1.3em;
|
||
}
|
||
h4, h5 {
|
||
font-size: 1.2em;
|
||
}
|
||
h6 {
|
||
font-size: 1.1em;
|
||
}
|
||
</style>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_introduction"><a class="anchor" href="#_introduction"></a>1. Introduction</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_proposal"><a class="anchor" href="#_proposal"></a>1.1. Proposal</h3>
|
||
<div class="paragraph">
|
||
<p>The idea is to define a set of macros to identify compilers and
|
||
consistently represent their version. This includes:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>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).</p>
|
||
</li>
|
||
<li>
|
||
<p>A compiler identification macro, suitable for use in <code>#if</code>/<code>#elif</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.</p>
|
||
</li>
|
||
<li>
|
||
<p>"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.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_current_library"><a class="anchor" href="#_current_library"></a>1.2. Current Library</h3>
|
||
<div class="paragraph">
|
||
<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>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Version numbers that are always defined so that one doesn’t have to guard
|
||
with <code>#ifdef</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p>Guard macros that can be used for <code>#ifdef</code> checks.</p>
|
||
</li>
|
||
<li>
|
||
<p>All possible definitions are included with the single <code>#include <boost/predef.h></code>
|
||
so that it’s friendly to pre-compiled header usage.</p>
|
||
</li>
|
||
<li>
|
||
<p>Specific definitions can be included, ex. <code>#include <boost/predef/os/windows.h></code>
|
||
for single checks.</p>
|
||
</li>
|
||
<li>
|
||
<p>Predefs can be directly used in both preprocessor and compiler expressions
|
||
for comparison to other similarly defined values.</p>
|
||
</li>
|
||
<li>
|
||
<p>The headers are usable from multiple languages, that support the C preprocessor.
|
||
In particular C++, C, Objective C, and Objective C++.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_design_choices"><a class="anchor" href="#_design_choices"></a>1.3. Design choices</h3>
|
||
<div class="paragraph">
|
||
<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>+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>[0, 999 999 999\</code>]. Distributing evenly, this means 3 decimal
|
||
digits for each version number part.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>So we can:</p>
|
||
</div>
|
||
<div class="olist arabic">
|
||
<ol class="arabic">
|
||
<li>
|
||
<p>use an uneven distribution or</p>
|
||
</li>
|
||
<li>
|
||
<p>use more bits (a larger type) or</p>
|
||
</li>
|
||
<li>
|
||
<p>use 3/3/3 and have the particular compiler/platform/stdlib deal with setting
|
||
the numbers within the 3-digit range.</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
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).
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>It might reassure the reader that this decision is actually encoded in one place
|
||
in the code; the definition of <code>BOOST_VERSION_NUMBER</code>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_future_work"><a class="anchor" href="#_future_work"></a>1.4. Future work</h3>
|
||
<div class="paragraph">
|
||
<p>Even though the basics of this library are done, there is much work that can be
|
||
done:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>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.</p>
|
||
</li>
|
||
<li>
|
||
<p>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.</p>
|
||
</li>
|
||
<li>
|
||
<p>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.</p>
|
||
</li>
|
||
<li>
|
||
<p>And obviously there’s lots of work to do in reformulating the existing
|
||
Boost libraries to use the Predef library.</p>
|
||
</li>
|
||
<li>
|
||
<p>And there’s the continuing work of adding definitions for present and
|
||
future compilers, platforms, architectures, languages, and libraries.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_using_the_predefs"><a class="anchor" href="#_using_the_predefs"></a>2. Using the predefs</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<p>To use the automatically defined predefs one needs to only include the
|
||
single top-level header:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef.h></span><span class="tok-cp"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>This defines [*all] the version macros known to the library. For each
|
||
macro it will be defined to either a`<em>zero</em>`valued expression for when
|
||
the particular item is not detected, and to a`<em>positive</em>`value if it
|
||
is detected. The predef macros fall onto five categories each with
|
||
macros of a particular prefix:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_ARCH_</code> for system/CPU architecture one is compiling for.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_COMP_</code> for the compiler one is using.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_LANG_</code> for language standards one is compiling against.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_LIB_C_</code> and <code>BOOST_LIB_STD_</code> for the C and C++ standard library
|
||
in use.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_OS_</code> for the operating system we are compiling to.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PLAT_</code> for platforms on top of operating system or compilers.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_ENDIAN_</code> for endianness of the os and architecture combination.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_HW_</code> for hardware specific features.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_HW_SIMD</code> for SIMD (Single Instruction Multiple Data) detection.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
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.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>One uses the individual definitions to compare against specific versions
|
||
by comparing against the <code>BOOST_VERSION_NUMBER</code> macro. For example, to make
|
||
a choice based on the version of the GCC C++ compiler one would:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">BOOST_COMP_GNUC</span> <span class="tok-o">>=</span> <span class="tok-n">BOOST_VERSION_NUMBER</span><span class="tok-p">(</span><span class="tok-mi">4</span><span class="tok-p">,</span><span class="tok-mi">0</span><span class="tok-p">,</span><span class="tok-mi">0</span><span class="tok-p">))</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"GCC compiler is at least version 4.0.0"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-k">else</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>As you might notice above the <code>else</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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">BOOST_COMP_GNUC</span><span class="tok-p">)</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"This is GNU GCC!"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-k">else</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"Not GNU GCC."</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And since the predef’s are preprocessor definitions the same is possible
|
||
from the preprocessor:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-cp">#if BOOST_COMP_GNUC</span>
|
||
<span class="tok-cp">#if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)</span>
|
||
<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span> <span class="tok-n">the_compiler</span> <span class="tok-o">=</span> <span class="tok-s">"GNU GCC, of at least version 4."</span>
|
||
<span class="tok-cp">#else</span>
|
||
<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span> <span class="tok-n">the_compiler</span> <span class="tok-o">=</span> <span class="tok-s">"GNU GCC, less than version 4."</span>
|
||
<span class="tok-cp">#endif</span>
|
||
<span class="tok-cp">#else</span>
|
||
<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span> <span class="tok-n">the_compiler</span> <span class="tok-o">=</span> <span class="tok-s">"Not GNU GCC."</span>
|
||
<span class="tok-cp">#endif</span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-n">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-n">the_compiler</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>In addition, for each version macro defined there is an
|
||
<code>*_AVAILABLE</code> macro defined only when the particular aspect is
|
||
detected. I.e. a definition equivalent to:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if BOOST_PREDEF_ABC</span>
|
||
<span class="tok-cp">#define BOOST_PREDEF_ABC_AVAILABLE</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Also for each aspect there is a macro defined with a descriptive
|
||
name of what the detection is.</p>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_the_emulated_macros"><a class="anchor" href="#_the_emulated_macros"></a>2.1. The <code>*_EMULATED</code> macros</h3>
|
||
<div class="paragraph">
|
||
<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>*_EMULATED</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>BOOST_COMP_MSVC_EMULATED</code> but not set <code>BOOST_COMP_MSVC</code>, and it will also set <code>BOOST_COMP_MSVC_AVAILABLE</code>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_using_the_boost_version_number_macro"><a class="anchor" href="#_using_the_boost_version_number_macro"></a>2.2. Using the <code>BOOST_VERSION_NUMBER</code> macro</h3>
|
||
<div class="paragraph">
|
||
<p>All the predefs are defined to be a use of the <code>BOOST_VERSION_NUMBER</code> macro.
|
||
The macro takes individual major, minor, and patch value expressions:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#define BOOST_VERSION_NUMBER( major, minor, patch ) ...</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The arguments are:</p>
|
||
</div>
|
||
<div class="olist arabic">
|
||
<ol class="arabic">
|
||
<li>
|
||
<p>Major version number, as a constant value expression in the range [0,99].</p>
|
||
</li>
|
||
<li>
|
||
<p>Minor version number, as a constant value expression in the range [0,99].</p>
|
||
</li>
|
||
<li>
|
||
<p>Patch-level version number, as a constant value expression in the
|
||
range [0,99999].</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>BOOST_VERSION_NUMBER</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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Is equivalent to:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_adding_new_predefs"><a class="anchor" href="#_adding_new_predefs"></a>3. Adding new predefs</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_requirements_of_the_header"><a class="anchor" href="#_requirements_of_the_header"></a>3.1. Requirements of the header</h3>
|
||
<div class="paragraph">
|
||
<p>All predefs need to follow a set of requirements:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>The headers must use the Boost Software License.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must, by default, be defined as <code>BOOST_VERSION_NUMBER_NOT_AVAILABLE</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must be redefined to a non-zero value once detected.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must, by default, be defined to <code>BOOST_VERSION_NUMBER_AVAILABLE</code>
|
||
when the predef is detected.</p>
|
||
</li>
|
||
<li>
|
||
<p>If possible, the predef will be defined as the version number detected.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must define <code>*_AVAILABLE</code> macros as needed.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must define a symbolic constant string name macro.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must declare itself, after being defined, for the testing
|
||
system.</p>
|
||
</li>
|
||
<li>
|
||
<p>The predef must guarantee that it is the only one defined as detected
|
||
per category.</p>
|
||
</li>
|
||
<li>
|
||
<p>But a predef can define <code>*_EMULATED</code> macros to indicate that it was
|
||
previously detected by another header and is being "emulated" by the
|
||
system. Note that the <code>*_AVAILABLE</code> macros must still be defined in this
|
||
situation.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And there are some extra guidelines that predef headers should follow:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>The detection should avoid including extra headers that might otherwise
|
||
not be included by default.</p>
|
||
</li>
|
||
<li>
|
||
<p>If the detection must include a header, prefer guarding it within the
|
||
detection if possible.</p>
|
||
</li>
|
||
<li>
|
||
<p>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.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_structure_of_the_header"><a class="anchor" href="#_structure_of_the_header"></a>3.2. Structure of the header</h3>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cm">/*</span>
|
||
<span class="tok-cm">Copyright Jane Doe YYYY</span>
|
||
<span class="tok-cm">Distributed under the Boost Software License, Version 1.0.</span>
|
||
<span class="tok-cm">(See accompanying file LICENSE_1_0.txt or copy at</span>
|
||
<span class="tok-cm">http://www.boost.org/LICENSE_1_0.txt)</span>
|
||
<span class="tok-cm">*/</span>
|
||
|
||
<span class="tok-cp">#ifndef BOOST_PREDEF_category_tag_H</span>
|
||
<span class="tok-cp">#define BOOST_PREDEF_category_tag_H</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>If the detection depends on the detection of another predef you should
|
||
include those headers here.</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/CATEGORY_TAG/DEPENDENCY.h></span><span class="tok-cp"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Depending on how you are defining the predef you will at minimum have
|
||
to include the <code>version_number.h</code> header. But you might also want to
|
||
include the <code>make.h</code> header for the version number decomposing utility
|
||
macros:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/version_number.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/make.h></span><span class="tok-cp"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The Predef library uses <a href="https://asciidoctor.org/">Asciidoctor</a> 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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cm">/* tag::reference[]</span>
|
||
|
||
<span class="tok-cm">= `BOOST_category_tag`</span>
|
||
|
||
<span class="tok-cm">Documentation about what is detected.</span>
|
||
|
||
<span class="tok-cm">*/</span>
|
||
|
||
<span class="tok-cp">#define BOOST_category_tag BOOST_VERSION_NUMBER_NOT_AVAILABLE</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Next is the detection and definition of the particular predef. The
|
||
structure for this is to do a single overall check (<code>condition_a</code>) and
|
||
place further version detection inside this. The first action inside
|
||
the overall check is to “#undef BOOST_category_tag” which removes
|
||
the zero-value default. The rest is up to the you how to do the checks
|
||
for defining the version. But at minimum it must
|
||
“#define BOOST_category_tag BOOST_VERSION_NUMBER_AVAILABLE” as
|
||
the fallback to minimally indicate that the predef was detected:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if (condition_a)</span>
|
||
<span class="tok-cp"># undef BOOST_category_tag</span>
|
||
<span class="tok-cp"># if (condition_b)</span>
|
||
<span class="tok-cp"># define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)</span>
|
||
<span class="tok-cp"># else</span>
|
||
<span class="tok-cp"># define BOOST_category_tag BOOST_VERSION_NUMBER_AVAILABLE</span>
|
||
<span class="tok-cp"># endif</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>We also need to provide the <code>*_AVAILABLE</code> versions of the predef.</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if BOOST_category_tag</span>
|
||
<span class="tok-cp"># define BOOST_category_tag_AVAILABLE</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And for convenience we also want to provide a <code>*_NAME</code> macro:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#define BOOST_category_tag_NAME "Name"</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>We close out the include guard at this point. We do whis before the test
|
||
declaration as the testing system includes the headers multiple times
|
||
to generate the needed testing code.</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/detail/test.h></span><span class="tok-cp"></span>
|
||
<span class="tok-n">BOOST_PREDEF_DECLARE_TEST</span><span class="tok-p">(</span><span class="tok-n">BOOST_category_tag</span><span class="tok-p">,</span><span class="tok-n">BOOST_category_tag_NAME</span><span class="tok-p">)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_adding_exclusive_predefs"><a class="anchor" href="#_adding_exclusive_predefs"></a>3.3. Adding exclusive predefs</h3>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Internally compiler, operating system, and platforms define
|
||
<code>BOOST_PREDEF_DETAIL_COMP_DETECTED</code>, <code>BOOST_PREDEF_DEFAIL_OS_DETECTED</code>, and
|
||
<code>BOOST_PREDEF_DETAIL_PLAT_DETECTED</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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if !BOOST_PREDEF_DETAIL_category_DETECTED && (condition_a)</span>
|
||
<span class="tok-cp"># undef BOOST_category_tag</span>
|
||
<span class="tok-cp"># if (condition_b)</span>
|
||
<span class="tok-cp"># define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)</span>
|
||
<span class="tok-cp"># else</span>
|
||
<span class="tok-cp"># define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)</span>
|
||
<span class="tok-cp"># endif</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And we also include a header that defines the <code>*_DETECTED</code> macro when we have
|
||
the detection:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if BOOST_category_tag</span>
|
||
<span class="tok-cp"># define BOOST_category_tag_AVAILABLE</span>
|
||
<span class="tok-cp"># include <boost/predef/detail/CATEGORY_detected.h></span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Everything else about the header is the same as the basic detection header.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_adding_an_exclusive_but_emulated_predef"><a class="anchor" href="#_adding_an_exclusive_but_emulated_predef"></a>3.4. Adding an exclusive but emulated predef</h3>
|
||
<div class="paragraph">
|
||
<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>*_DETECTION</code> macro for the compiler detection. And conditionally
|
||
define either the base compiler predef <code>BOOST_COMP_compiler</code> or the alternate
|
||
<code>BOOST_COMP_compiler_EMULATED</code> predef.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The initial detection would look like:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if (condition_a)</span>
|
||
<span class="tok-cp"># if (condition_b)</span>
|
||
<span class="tok-cp"># define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER(major,minor,patch)</span>
|
||
<span class="tok-cp"># else</span>
|
||
<span class="tok-cp"># define BOOST_COMP_tag_DETECTION BOOST_VERSION_NUMBER_AVAILABLE</span>
|
||
<span class="tok-cp"># endif</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And then we can conditionally define the base or emulated predefs:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#ifdef BOOST_COMP_tag_DETECTION</span>
|
||
<span class="tok-cp"># if defined(BOOST_PREDEF_DETAIL_COMP_DETECTED)</span>
|
||
<span class="tok-cp"># define BOOST_COMP_tag_EMULATED BOOST_COMP_tag_DETECTION</span>
|
||
<span class="tok-cp"># else</span>
|
||
<span class="tok-cp"># undef BOOST_COMP_tag</span>
|
||
<span class="tok-cp"># define BOOST_COMP_tag BOOST_COMP_tag_DETECTION</span>
|
||
<span class="tok-cp"># endif</span>
|
||
<span class="tok-cp"># define BOOST_category_tag_AVAILABLE</span>
|
||
<span class="tok-cp"># include <boost/predef/detail/comp_detected.h></span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_using_utility_pattern_macros"><a class="anchor" href="#_using_utility_pattern_macros"></a>3.5. Using utility pattern macros</h3>
|
||
<div class="paragraph">
|
||
<p>By including:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/make.h></span><span class="tok-cp"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#define BOOST_COMP_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_reference"><a class="anchor" href="#_reference"></a>4. Reference</h2>
|
||
<div class="sectionbody">
|
||
<div class="sect2">
|
||
<h3 id="_boost_arch_architecture_macros"><a class="anchor" href="#_boost_arch_architecture_macros"></a>4.1. <code>BOOST_ARCH</code> architecture macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_alpha"><a class="anchor" href="#_boost_arch_alpha"></a>4.1.1. <code>BOOST_ARCH_ALPHA</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/DEC_Alpha">DEC Alpha</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__alpha__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__alpha</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ALPHA</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__alpha_ev4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__alpha_ev5__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__alpha_ev6__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_arm"><a class="anchor" href="#_boost_arch_arm"></a>4.1.2. <code>BOOST_ARCH_ARM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/ARM_architecture">ARM</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TARGET_ARCH_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TARGET_ARCH_THUMB</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__arm__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__arm64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__thumb__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__aarch64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AARCH64EL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7A__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7R__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7M__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6K__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6Z__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6KZ__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6T2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_5TE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_5TEJ__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_4T__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TARGET_ARCH_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TARGET_ARCH_THUMB</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__arm64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__aarch64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AARCH64EL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">7.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7A__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">7.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7R__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">7.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_7M__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">7.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6K__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6Z__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6KZ__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_6T2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_5TE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_5TEJ__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_4T__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_ARCH_4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_blackfin"><a class="anchor" href="#_boost_arch_blackfin"></a>4.1.3. <code>BOOST_ARCH_BLACKFIN</code></h4>
|
||
<div class="paragraph">
|
||
<p>Blackfin Processors from Analog Devices.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__bfin__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__BFIN__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bfin</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BFIN</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_convex"><a class="anchor" href="#_boost_arch_convex"></a>4.1.4. <code>BOOST_ARCH_CONVEX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Convex_Computer">Convex Computer</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex_c1__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex_c2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex_c32__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex_c34__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__convex_c38__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.8.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_e2k"><a class="anchor" href="#_boost_arch_e2k"></a>4.1.5. <code>BOOST_ARCH_E2K</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/Elbrus_2000">E2K</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__e2k__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__e2k__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_ia64"><a class="anchor" href="#_boost_arch_ia64"></a>4.1.6. <code>BOOST_ARCH_IA64</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Ia64">Intel Itanium 64</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ia64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_IA64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__IA64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ia64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IA64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__itanium__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_m68k"><a class="anchor" href="#_boost_arch_m68k"></a>4.1.7. <code>BOOST_ARCH_M68K</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/M68k">Motorola 68k</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__m68k__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>M68000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68060__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68060</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68060</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68040__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68040</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68040</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68030__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68030</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68030</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68020__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68020</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68020</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68010__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68010</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68010</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68000__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">0.0.1</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>mc68000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">0.0.1</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mc68000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">0.0.1</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_mips"><a class="anchor" href="#_boost_arch_mips"></a>4.1.8. <code>BOOST_ARCH_MIPS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/MIPS_architecture">MIPS</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mips__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mips</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MIPS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__mips</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MIPS_ISA_MIPS1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_R3000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MIPS_ISA_MIPS2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MIPS_ISA2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_R4000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MIPS_ISA_MIPS3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MIPS_ISA3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MIPS_ISA_MIPS4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MIPS_ISA4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_parisc"><a class="anchor" href="#_boost_arch_parisc"></a>4.1.9. <code>BOOST_ARCH_PARISC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/PA-RISC_family">HP/PA RISC</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__hppa__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__hppa</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HPPA__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_PA_RISC1_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_PA_RISC1_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HPPA11__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PA7100__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_PA_RISC2_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__RISC2_0__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HPPA20__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PA8000__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_ppc"><a class="anchor" href="#_boost_arch_ppc"></a>4.1.10. <code>BOOST_ARCH_PPC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/PowerPC">PowerPC</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__powerpc</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__powerpc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__powerpc64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__POWERPC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PPC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PPC64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_PPC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_PPC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_PPC64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PPCGECKO__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PPCBROADWAY__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_XENON</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc601__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_601</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc603__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_603</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc604__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc604__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.4.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_ppc_64"><a class="anchor" href="#_boost_arch_ppc_64"></a>4.1.11. <code>BOOST_ARCH_PPC_64</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/PowerPC">PowerPC</a> 64 bit architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__powerpc64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ppc64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PPC64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_PPC64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_ptx"><a class="anchor" href="#_boost_arch_ptx"></a>4.1.12. <code>BOOST_ARCH_PTX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/Parallel_Thread_Execution">PTX</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CUDA_ARCH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CUDA_ARCH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_pyramid"><a class="anchor" href="#_boost_arch_pyramid"></a>4.1.13. <code>BOOST_ARCH_PYRAMID</code></h4>
|
||
<div class="paragraph">
|
||
<p>Pyramid 9810 architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>pyr</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_riscv"><a class="anchor" href="#_boost_arch_riscv"></a>4.1.14. <code>BOOST_ARCH_RISCV</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/RISC-V">RISC-V</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__riscv</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_rs6000"><a class="anchor" href="#_boost_arch_rs6000"></a>4.1.15. <code>BOOST_ARCH_RS6000</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/RS/6000">RS/6000</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__THW_RS6000</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_IBMR2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_POWER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_PWR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_ARCH_PWR2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_sparc"><a class="anchor" href="#_boost_arch_sparc"></a>4.1.16. <code>BOOST_ARCH_SPARC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/SPARC">SPARC</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparc</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparcv9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">9.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparc_v9__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">9.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparcv8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sparc_v8__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_sh"><a class="anchor" href="#_boost_arch_sh"></a>4.1.17. <code>BOOST_ARCH_SH</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/SuperH">SuperH</a> architecture:
|
||
If available versions [1-5] are specifically detected.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sh__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SH5__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SH4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sh3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SH3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sh2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sh1__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_sys370"><a class="anchor" href="#_boost_arch_sys370"></a>4.1.18. <code>BOOST_ARCH_SYS370</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/System/370">System/370</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__370__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__THW_370__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_sys390"><a class="anchor" href="#_boost_arch_sys390"></a>4.1.19. <code>BOOST_ARCH_SYS390</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/System/390">System/390</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__s390__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__s390x__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_x86"><a class="anchor" href="#_boost_arch_x86"></a>4.1.20. <code>BOOST_ARCH_X86</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/X86">Intel x86</a> architecture. This is
|
||
a category to indicate that either <code>BOOST_ARCH_X86_32</code> or
|
||
<code>BOOST_ARCH_X86_64</code> is detected.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_z"><a class="anchor" href="#_boost_arch_z"></a>4.1.21. <code>BOOST_ARCH_Z</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Z/Architecture">z/Architecture</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SYSC_ZARCH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_x86_32"><a class="anchor" href="#_boost_arch_x86_32"></a>4.1.22. <code>BOOST_ARCH_X86_32</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/X86">Intel x86</a> architecture:
|
||
If available versions [3-6] are specifically detected.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>i386</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i386__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i486__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i586__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i686__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i386</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_X86_</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__THW_INTEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__I86__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__INTEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__I86__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i686__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i586__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i486__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__i386__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_x86_64"><a class="anchor" href="#_boost_arch_x86_64"></a>4.1.23. <code>BOOST_ARCH_X86_64</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/X86-64">X86-64</a> architecture.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__x86_64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__x86_64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__amd64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__amd64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_X64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_comp_compiler_macros"><a class="anchor" href="#_boost_comp_compiler_macros"></a>4.2. <code>BOOST_COMP</code> compiler macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_borland"><a class="anchor" href="#_boost_comp_borland"></a>4.2.1. <code>BOOST_COMP_BORLAND</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/C_plus_plus_builder">Borland C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__BORLANDC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CODEGEARC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__BORLANDC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CODEGEARC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_clang"><a class="anchor" href="#_boost_comp_clang"></a>4.2.2. <code>BOOST_COMP_CLANG</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Clang">Clang</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__clang__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__clang_major__</code>, <code>__clang_minor__</code>, <code>__clang_patchlevel__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_como"><a class="anchor" href="#_boost_comp_como"></a>4.2.3. <code>BOOST_COMP_COMO</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B">Comeau C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__COMO__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__COMO_VERSION__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_dec"><a class="anchor" href="#_boost_comp_dec"></a>4.2.4. <code>BOOST_COMP_DEC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.openvms.compaq.com/openvms/brochures/deccplus/">Compaq C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DECCXX</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DECC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DECCXX_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DECC_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_diab"><a class="anchor" href="#_boost_comp_diab"></a>4.2.5. <code>BOOST_COMP_DIAB</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.windriver.com/products/development_suite/wind_river_compiler/">Diab C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DCC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VERSION_NUMBER__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_dmc"><a class="anchor" href="#_boost_comp_dmc"></a>4.2.6. <code>BOOST_COMP_DMC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Digital_Mars">Digital Mars</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DMC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DMC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_sysc"><a class="anchor" href="#_boost_comp_sysc"></a>4.2.7. <code>BOOST_COMP_SYSC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.dignus.com/dcxx/">Dignus Systems/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SYSC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SYSC_VER__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_edg"><a class="anchor" href="#_boost_comp_edg"></a>4.2.8. <code>BOOST_COMP_EDG</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Edison_Design_Group">EDG C++ Frontend</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__EDG__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__EDG_VERSION__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_path"><a class="anchor" href="#_boost_comp_path"></a>4.2.9. <code>BOOST_COMP_PATH</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/PathScale">EKOpath</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PATHCC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PATHCC__</code>, <code>__PATHCC_MINOR__</code>, <code>__PATHCC_PATCHLEVEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_gnuc"><a class="anchor" href="#_boost_comp_gnuc"></a>4.2.10. <code>BOOST_COMP_GNUC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/GNU_Compiler_Collection">Gnu GCC C/C++</a> compiler.
|
||
Version number available as major, minor, and patch (if available).</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GNUC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GNUC__</code>, <code>__GNUC_MINOR__</code>, <code>__GNUC_PATCHLEVEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GNUC__</code>, <code>__GNUC_MINOR__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_gccxml"><a class="anchor" href="#_boost_comp_gccxml"></a>4.2.11. <code>BOOST_COMP_GCCXML</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.gccxml.org/">GCC XML</a> compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GCCXML__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_ghs"><a class="anchor" href="#_boost_comp_ghs"></a>4.2.12. <code>BOOST_COMP_GHS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Green_Hills_Software">Green Hills C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ghs</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ghs__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GHS_VERSION_NUMBER__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ghs</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_hpacc"><a class="anchor" href="#_boost_comp_hpacc"></a>4.2.13. <code>BOOST_COMP_HPACC</code></h4>
|
||
<div class="paragraph">
|
||
<p>HP aC++ compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HP_aCC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HP_aCC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_iar"><a class="anchor" href="#_boost_comp_iar"></a>4.2.14. <code>BOOST_COMP_IAR</code></h4>
|
||
<div class="paragraph">
|
||
<p>IAR C/C++ compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__IAR_SYSTEMS_ICC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VER__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_ibm"><a class="anchor" href="#_boost_comp_ibm"></a>4.2.15. <code>BOOST_COMP_IBM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/VisualAge">IBM XL C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__IBMCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__xlC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__xlc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__COMPILER_VER__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__xlC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__xlc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__IBMCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_intel"><a class="anchor" href="#_boost_comp_intel"></a>4.2.16. <code>BOOST_COMP_INTEL</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Intel_C%2B%2B">Intel C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__INTEL_COMPILER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ICL</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ICC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ECC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__INTEL_COMPILER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__INTEL_COMPILER</code> and <code>__INTEL_COMPILER_UPDATE</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
Because of an Intel mistake in the release version numbering when
|
||
<code>__INTEL_COMPILER</code> is <code>9999</code> it is detected as version 12.1.0.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_kcc"><a class="anchor" href="#_boost_comp_kcc"></a>4.2.17. <code>BOOST_COMP_KCC</code></h4>
|
||
<div class="paragraph">
|
||
<p>Kai C++ compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__KCC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__KCC_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_llvm"><a class="anchor" href="#_boost_comp_llvm"></a>4.2.18. <code>BOOST_COMP_LLVM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/LLVM">LLVM</a> compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__llvm__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_highc"><a class="anchor" href="#_boost_comp_highc"></a>4.2.19. <code>BOOST_COMP_HIGHC</code></h4>
|
||
<div class="paragraph">
|
||
<p>MetaWare High C/C++ compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HIGHC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_mwerks"><a class="anchor" href="#_boost_comp_mwerks"></a>4.2.20. <code>BOOST_COMP_MWERKS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/CodeWarrior">Metrowerks CodeWarrior</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MWERKS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CWCC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CWCC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MWERKS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P >= 4.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MWERKS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">9.R.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MWERKS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">8.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_mri"><a class="anchor" href="#_boost_comp_mri"></a>4.2.21. <code>BOOST_COMP_MRI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.mentor.com/microtec/">Microtec C/C++</a> compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MRI</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_mpw"><a class="anchor" href="#_boost_comp_mpw"></a>4.2.22. <code>BOOST_COMP_MPW</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop">MPW C++</a> compiler.
|
||
Version number available as major, and minor.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MRC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MPW_C</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MPW_CPLUS</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MRC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_nvcc"><a class="anchor" href="#_boost_comp_nvcc"></a>4.2.23. <code>BOOST_COMP_NVCC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/NVIDIA_CUDA_Compiler">NVCC</a> compiler.
|
||
Version number available as major, minor, and patch beginning with version 7.5.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__NVCC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CUDACC_VER_MAJOR__</code>, <code>__CUDACC_VER_MINOR__</code>, <code>__CUDACC_VER_BUILD__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_palm"><a class="anchor" href="#_boost_comp_palm"></a>4.2.24. <code>BOOST_COMP_PALM</code></h4>
|
||
<div class="paragraph">
|
||
<p>Palm C/C++ compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_PACC_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_PACC_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_pgi"><a class="anchor" href="#_boost_comp_pgi"></a>4.2.25. <code>BOOST_COMP_PGI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/The_Portland_Group">Portland Group C/C++</a> compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PGI</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__PGIC__</code>, <code>__PGIC_MINOR__</code>, <code>__PGIC_PATCHLEVEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_sgi"><a class="anchor" href="#_boost_comp_sgi"></a>4.2.26. <code>BOOST_COMP_SGI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/MIPSpro">SGI MIPSpro</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sgi</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sgi</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_SGI_COMPILER_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_COMPILER_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_sunpro"><a class="anchor" href="#_boost_comp_sunpro"></a>4.2.27. <code>BOOST_COMP_SUNPRO</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Oracle_Solaris_Studio">Oracle Solaris Studio</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_CC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_C</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_CC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_C</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_CC</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">VV.RR.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SUNPRO_C</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">VV.RR.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_tendra"><a class="anchor" href="#_boost_comp_tendra"></a>4.2.28. <code>BOOST_COMP_TENDRA</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/TenDRA_Compiler">TenDRA C/C++</a> compiler.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TenDRA__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_msvc"><a class="anchor" href="#_boost_comp_msvc"></a>4.2.29. <code>BOOST_COMP_MSVC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Visual_studio">Microsoft Visual C/C++</a> compiler.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MSC_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MSC_FULL_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_MSC_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
Release of Visual Studio after 2015 will no longer be identified
|
||
by Boost Predef as the marketing version number. Instead we use the
|
||
compiler version number directly, i.e. the _MSC_VER number.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_comp_watcom"><a class="anchor" href="#_boost_comp_watcom"></a>4.2.30. <code>BOOST_COMP_WATCOM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Watcom">Watcom C++</a> compiler.
|
||
Version number available as major, and minor.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__WATCOMC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__WATCOMC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_lang_language_standards_macros"><a class="anchor" href="#_boost_lang_language_standards_macros"></a>4.3. <code>BOOST_LANG</code> language standards macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_cuda"><a class="anchor" href="#_boost_lang_cuda"></a>4.3.1. <code>BOOST_LANG_CUDA</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/CUDA">CUDA C/C++</a> language.
|
||
If available, the version is detected as VV.RR.P.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CUDACC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CUDA__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CUDA_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">VV.RR.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_objc"><a class="anchor" href="#_boost_lang_objc"></a>4.3.2. <code>BOOST_LANG_OBJC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Objective-C">Objective-C</a> language.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__OBJC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_stdc"><a class="anchor" href="#_boost_lang_stdc"></a>4.3.3. <code>BOOST_LANG_STDC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/C_(programming_language)">Standard C</a> language.
|
||
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__STDC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__STDC_VERSION__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_stdcpp"><a class="anchor" href="#_boost_lang_stdcpp"></a>4.3.4. <code>BOOST_LANG_STDCPP</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/C%2B%2B">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>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<caption class="title">Table 1. Detected Version Number vs. C++ Standard Year</caption>
|
||
<colgroup>
|
||
<col style="width: 33.3333%;">
|
||
<col style="width: 33.3333%;">
|
||
<col style="width: 33.3334%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Detected Version Number</th>
|
||
<th class="tableblock halign-left valign-top">Standard Year</th>
|
||
<th class="tableblock halign-left valign-top">C++ Standard</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">27.11.1</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1998</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO/IEC 14882:1998</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">41.3.1</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2011</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO/IEC 14882:2011</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">44.2.1</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2014</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO/IEC 14882:2014</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">47.3.1</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2017</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">ISO/IEC 14882:2017</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cplusplus</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cplusplus</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">YYYY.MM.1</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_stdcppcli"><a class="anchor" href="#_boost_lang_stdcppcli"></a>4.3.5. <code>BOOST_LANG_STDCPPCLI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/C%2B%2B/CLI">Standard C++/CLI</a> language.
|
||
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cplusplus_cli</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cplusplus_cli</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">YYYY.MM.1</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lang_stdecpp"><a class="anchor" href="#_boost_lang_stdecpp"></a>4.3.6. <code>BOOST_LANG_STDECPP</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Embedded_C%2B%2B">Standard Embedded C++</a> language.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__embedded_cplusplus</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_lib_library_macros"><a class="anchor" href="#_boost_lib_library_macros"></a>4.4. <code>BOOST_LIB</code> library macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_c_cloudabi"><a class="anchor" href="#_boost_lib_c_cloudabi"></a>4.4.1. <code>BOOST_LIB_C_CLOUDABI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://github.com/NuxiNL/cloudlibc">cloudlibc</a> - CloudABI’s standard C library.
|
||
Version number available as major, and minor.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cloudlibc__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__cloudlibc_major__</code>, <code>__cloudlibc_minor__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_c_gnu"><a class="anchor" href="#_boost_lib_c_gnu"></a>4.4.2. <code>BOOST_LIB_C_GNU</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Glibc">GNU glibc</a> Standard C library.
|
||
Version number available as major, and minor.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GNU_LIBRARY__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBC__</code>, <code>__GLIBC_MINOR__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GNU_LIBRARY__</code>, <code>__GNU_LIBRARY_MINOR__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_c_uc"><a class="anchor" href="#_boost_lib_c_uc"></a>4.4.3. <code>BOOST_LIB_C_UC</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Uclibc">uClibc</a> Standard C library.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__UCLIBC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__UCLIBC_MAJOR__</code>, <code>__UCLIBC_MINOR__</code>, <code>__UCLIBC_SUBLEVEL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_c_vms"><a class="anchor" href="#_boost_lib_c_vms"></a>4.4.4. <code>BOOST_LIB_C_VMS</code></h4>
|
||
<div class="paragraph">
|
||
<p>VMS libc Standard C library.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CRTL_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CRTL_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_c_zos"><a class="anchor" href="#_boost_lib_c_zos"></a>4.4.5. <code>BOOST_LIB_C_ZOS</code></h4>
|
||
<div class="paragraph">
|
||
<p>z/OS libc Standard C library.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__LIBREL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__LIBREL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TARGET_LIB__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_cxx"><a class="anchor" href="#_boost_lib_std_cxx"></a>4.4.6. <code>BOOST_LIB_STD_CXX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://libcxx.llvm.org/">libc++</a> C++ Standard Library.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_LIBCPP_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_LIBCPP_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_dinkumware"><a class="anchor" href="#_boost_lib_std_dinkumware"></a>4.4.7. <code>BOOST_LIB_STD_DINKUMWARE</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Dinkumware">Dinkumware</a> Standard C++ Library.
|
||
If available version number as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_YVALS</code>, <code>__IBMCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_CPPLIB_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_CPPLIB_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_como"><a class="anchor" href="#_boost_lib_std_como"></a>4.4.8. <code>BOOST_LIB_STD_COMO</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.comeaucomputing.com/libcomo/">Comeau Computing</a> Standard C++ Library.
|
||
Version number available as major.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__LIBCOMO__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__LIBCOMO_VERSION__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_msipl"><a class="anchor" href="#_boost_lib_std_msipl"></a>4.4.9. <code>BOOST_LIB_STD_MSIPL</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://modena.us/">Modena Software Lib++</a> Standard C++ Library.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>MSIPL_COMPILE_H</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MSIPL_COMPILE_H</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_msl"><a class="anchor" href="#_boost_lib_std_msl"></a>4.4.10. <code>BOOST_LIB_STD_MSL</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.freescale.com/">Metrowerks</a> Standard C++ Library.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MSL_CPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MSL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MSL_CPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MSL__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_rw"><a class="anchor" href="#_boost_lib_std_rw"></a>4.4.11. <code>BOOST_LIB_STD_RW</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://stdcxx.apache.org/">Roguewave</a> Standard C++ library.
|
||
If available version number as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__STD_RWCOMPILER_H__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_RWSTD_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_RWSTD_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_sgi"><a class="anchor" href="#_boost_lib_std_sgi"></a>4.4.12. <code>BOOST_LIB_STD_SGI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.sgi.com/tech/stl/">SGI</a> Standard C++ library.
|
||
If available version number as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__STL_CONFIG_H</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SGI_STL</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_gnu"><a class="anchor" href="#_boost_lib_std_gnu"></a>4.4.13. <code>BOOST_LIB_STD_GNU</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://gcc.gnu.org/onlinedocs/libstdc%2b%2b/">GNU libstdc++</a> Standard C++ library.
|
||
Version number available as year (from 1970), month, and day.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBCXX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBCXX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__GLIBCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_stlport"><a class="anchor" href="#_boost_lib_std_stlport"></a>4.4.14. <code>BOOST_LIB_STD_STLPORT</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://sourceforge.net/projects/stlport/">STLport Standard C++</a> library.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SGI_STL_PORT</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_STLPORT_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_STLPORT_MAJOR</code>, <code>_STLPORT_MINOR</code>, <code>_STLPORT_PATCHLEVEL</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_STLPORT_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SGI_STL_PORT</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_lib_std_ibm"><a class="anchor" href="#_boost_lib_std_ibm"></a>4.4.15. <code>BOOST_LIB_STD_IBM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.ibm.com/software/awdtools/xlcpp/">IBM VACPP Standard C++</a> library.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__IBMCPP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_os_operating_system_macros"><a class="anchor" href="#_boost_os_operating_system_macros"></a>4.5. <code>BOOST_OS</code> operating system macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_aix"><a class="anchor" href="#_boost_os_aix"></a>4.5.1. <code>BOOST_OS_AIX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/AIX_operating_system">IBM AIX</a> operating system.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_AIX</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TOS_AIX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_AIX43</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_AIX41</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_AIX32</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_AIX3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_amigaos"><a class="anchor" href="#_boost_os_amigaos"></a>4.5.2. <code>BOOST_OS_AMIGAOS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/AmigaOS">AmigaOS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>AMIGA</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__amigaos__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_beos"><a class="anchor" href="#_boost_os_beos"></a>4.5.3. <code>BOOST_OS_BEOS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/BeOS">BeOS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__BEOS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd"><a class="anchor" href="#_boost_os_bsd"></a>4.5.4. <code>BOOST_OS_BSD</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution">BSD</a> operating system.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>BSD has various branch operating systems possible and each detected
|
||
individually. This detects the following variations and sets a specific
|
||
version number macro to match:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_OS_BSD_DRAGONFLY</code> <a href="http://en.wikipedia.org/wiki/DragonFly_BSD">DragonFly BSD</a></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_OS_BSD_FREE</code> <a href="http://en.wikipedia.org/wiki/Freebsd">FreeBSD</a></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_OS_BSD_BSDI</code> <a href="http://en.wikipedia.org/wiki/BSD/OS">BSDi BSD/OS</a></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_OS_BSD_NET</code> <a href="http://en.wikipedia.org/wiki/Netbsd">NetBSD</a></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_OS_BSD_OPEN</code> <a href="http://en.wikipedia.org/wiki/Openbsd">OpenBSD</a></p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
The general <code>BOOST_OS_BSD</code> is set in all cases to indicate some form
|
||
of BSD. If the above variants is detected the corresponding macro is also set.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BSD</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_SYSTYPE_BSD</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BSD4_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BSD4_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BSD4_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BSD</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_cygwin"><a class="anchor" href="#_boost_os_cygwin"></a>4.5.5. <code>BOOST_OS_CYGWIN</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Cygwin">Cygwin</a> evironment.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CYGWIN__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CYGWIN_VERSION_API_MAJOR</code>, <code>CYGWIN_VERSION_API_MINOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_haiku"><a class="anchor" href="#_boost_os_haiku"></a>4.5.6. <code>BOOST_OS_HAIKU</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Haiku_(operating_system)">Haiku</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__HAIKU__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_hpux"><a class="anchor" href="#_boost_os_hpux"></a>4.5.7. <code>BOOST_OS_HPUX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/HP-UX">HP-UX</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>hpux</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_hpux</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__hpux</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_ios"><a class="anchor" href="#_boost_os_ios"></a>4.5.8. <code>BOOST_OS_IOS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/iOS">iOS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__APPLE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MACH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_irix"><a class="anchor" href="#_boost_os_irix"></a>4.5.9. <code>BOOST_OS_IRIX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Irix">IRIX</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sgi</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sgi</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_linux"><a class="anchor" href="#_boost_os_linux"></a>4.5.10. <code>BOOST_OS_LINUX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Linux">Linux</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>linux</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__linux</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__linux__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__gnu_linux__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_macos"><a class="anchor" href="#_boost_os_macos"></a>4.5.11. <code>BOOST_OS_MACOS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Mac_OS">Mac OS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>macintosh</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>Macintosh</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__APPLE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MACH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__APPLE__</code>, <code>__MACH__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">10.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><em>otherwise</em></code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">9.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_os400"><a class="anchor" href="#_boost_os_os400"></a>4.5.12. <code>BOOST_OS_OS400</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/IBM_i">IBM OS/400</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__OS400__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_qnx"><a class="anchor" href="#_boost_os_qnx"></a>4.5.13. <code>BOOST_OS_QNX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/QNX">QNX</a> operating system.
|
||
Version number available as major, and minor if possible. And
|
||
version 4 is specifically detected.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__QNX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__QNXNTO__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_NTO_VERSION</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__QNX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_solaris"><a class="anchor" href="#_boost_os_solaris"></a>4.5.14. <code>BOOST_OS_SOLARIS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Solaris_Operating_Environment">Solaris</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>sun</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sun</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_unix"><a class="anchor" href="#_boost_os_unix"></a>4.5.15. <code>BOOST_OS_UNIX</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Unix">Unix Environment</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>unix</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__unix</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_XOPEN_SOURCE</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_POSIX_SOURCE</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_svr4"><a class="anchor" href="#_boost_os_svr4"></a>4.5.16. <code>BOOST_OS_SVR4</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/UNIX_System_V">SVR4 Environment</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__sysv__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SVR4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__svr4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_SYSTYPE_SVR4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_vms"><a class="anchor" href="#_boost_os_vms"></a>4.5.17. <code>BOOST_OS_VMS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Vms">VMS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VMS</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VMS</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VMS_VER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_windows"><a class="anchor" href="#_boost_os_windows"></a>4.5.18. <code>BOOST_OS_WINDOWS</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Category:Microsoft_Windows">Microsoft Windows</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_WIN32</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_WIN64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__WIN32__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__TOS_WIN__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__WINDOWS__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd_bsdi"><a class="anchor" href="#_boost_os_bsd_bsdi"></a>4.5.19. <code>BOOST_OS_BSD_BSDI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/BSD/OS">BSDi BSD/OS</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__bsdi__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd_dragonfly"><a class="anchor" href="#_boost_os_bsd_dragonfly"></a>4.5.20. <code>BOOST_OS_BSD_DRAGONFLY</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/DragonFly_BSD">DragonFly BSD</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__DragonFly__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd_free"><a class="anchor" href="#_boost_os_bsd_free"></a>4.5.21. <code>BOOST_OS_BSD_FREE</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Freebsd">FreeBSD</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FreeBSD__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FreeBSD_version</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd_net"><a class="anchor" href="#_boost_os_bsd_net"></a>4.5.22. <code>BOOST_OS_BSD_NET</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Netbsd">NetBSD</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__NETBSD__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__NetBSD__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__NETBSD_version</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NetBSD0_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">0.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NetBSD0_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">0.9.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>NetBSD1_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__NetBSD_Version</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.P</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_os_bsd_open"><a class="anchor" href="#_boost_os_bsd_open"></a>4.5.23. <code>BOOST_OS_BSD_OPEN</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Openbsd">OpenBSD</a> operating system.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__OpenBSD__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_5</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.5.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_6</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.6.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_7</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.7.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD2_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">2.9.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_5</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.5.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_6</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.6.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_7</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.7.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD3_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">3.9.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_5</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.5.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_6</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.6.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_7</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.7.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD4_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">4.9.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_5</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.5.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_6</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.6.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_7</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.7.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD5_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">5.9.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_0</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.0.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.1.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.2.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_3</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.3.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_4</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.4.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_5</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.5.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_6</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.6.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_7</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.7.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_8</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.8.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>OpenBSD6_9</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">6.9.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_plat_platform_macros"><a class="anchor" href="#_boost_plat_platform_macros"></a>4.6. <code>BOOST_PLAT</code> platform macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_android"><a class="anchor" href="#_boost_plat_android"></a>4.6.1. <code>BOOST_PLAT_ANDROID</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/Android_%28operating_system%29">Android</a> platform.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ANDROID__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_cloudabi"><a class="anchor" href="#_boost_plat_cloudabi"></a>4.6.2. <code>BOOST_PLAT_CLOUDABI</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://github.com/NuxiNL/cloudabi">CloudABI</a> platform.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__CloudABI__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_ios_device"><a class="anchor" href="#_boost_plat_ios_device"></a>4.6.3. <code>BOOST_PLAT_IOS_DEVICE</code></h4>
|
||
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_ios_simulator"><a class="anchor" href="#_boost_plat_ios_simulator"></a>4.6.4. <code>BOOST_PLAT_IOS_SIMULATOR</code></h4>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TARGET_IPHONE_SIMULATOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TARGET_OS_SIMULATOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_mingw"><a class="anchor" href="#_boost_plat_mingw"></a>4.6.5. <code>BOOST_PLAT_MINGW</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://en.wikipedia.org/wiki/MinGW">MinGW</a> platform, either variety.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW32__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW64_VERSION_MAJOR</code>, <code>__MINGW64_VERSION_MINOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW32_VERSION_MAJOR</code>, <code>__MINGW32_VERSION_MINOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_mingw32"><a class="anchor" href="#_boost_plat_mingw32"></a>4.6.6. <code>BOOST_PLAT_MINGW32</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://www.mingw.org/">MinGW</a> platform.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW32__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW32_VERSION_MAJOR</code>, <code>__MINGW32_VERSION_MINOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_mingw64"><a class="anchor" href="#_boost_plat_mingw64"></a>4.6.7. <code>BOOST_PLAT_MINGW64</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://mingw-w64.org/">MinGW-w64</a> platform.
|
||
Version number available as major, minor, and patch.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW64_VERSION_MAJOR</code>, <code>__MINGW64_VERSION_MINOR</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">V.R.0</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_desktop"><a class="anchor" href="#_boost_plat_windows_desktop"></a>4.6.8. <code>BOOST_PLAT_WINDOWS_DESKTOP</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows Desktop development. Also available if the Platform SDK is too
|
||
old to support UWP.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>!BOOST_PLAT_WINDOWS_UWP</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_phone"><a class="anchor" href="#_boost_plat_windows_phone"></a>4.6.9. <code>BOOST_PLAT_WINDOWS_PHONE</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows Phone development.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_runtime"><a class="anchor" href="#_boost_plat_windows_runtime"></a>4.6.10. <code>BOOST_PLAT_WINDOWS_RUNTIME</code></h4>
|
||
<div class="paragraph">
|
||
<p>Deprecated.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows Phone or Store development. This does not align to the existing development model for
|
||
UWP and is deprecated. Use one of the other `BOOST_PLAT_WINDOWS_*`definitions instead.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BOOST_PLAT_WINDOWS_PHONE</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BOOST_PLAT_WINDOWS_STORE</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_server"><a class="anchor" href="#_boost_plat_windows_server"></a>4.6.11. <code>BOOST_PLAT_WINDOWS_SERVER</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows Server development.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_SERVER</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_store"><a class="anchor" href="#_boost_plat_windows_store"></a>4.6.12. <code>BOOST_PLAT_WINDOWS_STORE</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows Store development.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_PC_APP</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_APP</code> (deprecated)</p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_system"><a class="anchor" href="#_boost_plat_windows_system"></a>4.6.13. <code>BOOST_PLAT_WINDOWS_SYSTEM</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide">UWP</a>
|
||
for Windows System development.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>WINAPI_FAMILY == WINAPI_FAMILY_SYSTEM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_plat_windows_uwp"><a class="anchor" href="#_boost_plat_windows_uwp"></a>4.6.14. <code>BOOST_PLAT_WINDOWS_UWP</code></h4>
|
||
<div class="paragraph">
|
||
<p><a href="http://docs.microsoft.com/windows/uwp/">Universal Windows Platform</a>
|
||
is available if the current development environment is capable of targeting
|
||
UWP development.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__MINGW64_VERSION_MAJOR</code> from <code>_mingw.h</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>>= 3</code></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>VER_PRODUCTBUILD</code> from <code>ntverp.h</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>>= 9200</code></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_boost_hw_hardware_macros"><a class="anchor" href="#_boost_hw_hardware_macros"></a>4.7. <code>BOOST_HW</code> hardware macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_using_the_boost_hw_simd_predefs"><a class="anchor" href="#_using_the_boost_hw_simd_predefs"></a>4.7.1. Using the <code>BOOST_HW_SIMD_*</code> predefs</h4>
|
||
<div class="paragraph">
|
||
<p>SIMD predefs depend on compiler options. For example, you will have to add the
|
||
option <code>-msse3</code> to clang or gcc to enable SSE3. SIMD predefs are also inclusive.
|
||
This means that if SSE3 is enabled, then every other extensions with a lower
|
||
version number will implicitly be enabled and detected. However, some extensions
|
||
are CPU specific, they may not be detected nor enabled when an upper version is
|
||
enabled.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
SSE(1) and SSE2 are automatically enabled by default when using x86-64
|
||
architecture.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>To check if any SIMD extension has been enabled, you can use:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/hardware/simd.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-cp">#if defined(BOOST_HW_SIMD_AVAILABLE)</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"SIMD detected!"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-cp">#endif</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>When writing SIMD specific code, you may want to check if a particular extension
|
||
has been detected. To do so you have to use the right architecture predef and
|
||
compare it. Those predef are of the form <code>BOOST_HW_SIMD_"ARCH"</code> (where <code>"ARCH"</code>
|
||
is either <code>ARM</code>, <code>PPC</code>, or <code>X86</code>). For example, if you compile code for x86
|
||
architecture, you will have to use <code>BOOST_HW_SIMD_X86</code>. Its value will be the
|
||
version number of the most recent SIMD extension detected for the architecture.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>To check if an extension has been enabled:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/hardware/simd.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-cp">#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"This is SSE3!"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-cp">#endif</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
The <strong>_VERSION</strong> defines that map version number to actual real
|
||
identifiers. This way it is easier to write comparisons without messing up with
|
||
version numbers.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>To <strong>"strictly"</strong> check the most recent detected extension:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/hardware/simd.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-cp">#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"This is SSE3 and this is the most recent enabled extension!"</span>
|
||
<span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-cp">#endif</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Because of the version systems of predefs and of the inclusive property of SIMD
|
||
extensions macros, you can easily check for ranges of supported extensions:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf"><boost/predef/hardware/simd.h></span><span class="tok-cp"></span>
|
||
<span class="tok-cp">#include</span> <span class="tok-cpf"><iostream></span><span class="tok-cp"></span>
|
||
|
||
<span class="tok-kt">int</span> <span class="tok-nf">main</span><span class="tok-p">()</span>
|
||
<span class="tok-p">{</span>
|
||
<span class="tok-cp">#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\</span>
|
||
<span class="tok-cp"> BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION</span>
|
||
<span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">cout</span> <span class="tok-o"><<</span> <span class="tok-s">"This is SSE2, SSE3 and SSSE3!"</span> <span class="tok-o"><<</span> <span class="tok-n">std</span><span class="tok-o">::</span><span class="tok-n">endl</span><span class="tok-p">;</span>
|
||
<span class="tok-cp">#endif</span>
|
||
<span class="tok-k">return</span> <span class="tok-mi">0</span><span class="tok-p">;</span>
|
||
<span class="tok-p">}</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
Unlike gcc and clang, Visual Studio does not allow you to specify precisely
|
||
the SSE variants you want to use, the only detections that will take place are
|
||
SSE, SSE2, AVX and AVX2. For more informations,
|
||
see [@https://msdn.microsoft.com/en-us/library/b0084kay.aspx here].
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_arm"><a class="anchor" href="#_boost_hw_simd_arm"></a>4.7.2. <code>BOOST_HW_SIMD_ARM</code></h4>
|
||
<div class="paragraph">
|
||
<p>The SIMD extension for ARM (<strong>if detected</strong>).
|
||
Version number depends on the most recent detected extension.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_NEON__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__aarch64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ARM_NEON__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_ARM_NEON_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__aarch64__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_ARM_NEON_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_ARM_NEON_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_ARM64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_ARM_NEON_VERSION</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_arm_version"><a class="anchor" href="#_boost_hw_simd_arm_version"></a>4.7.3. <code>BOOST_HW_SIMD_ARM_*_VERSION</code></h4>
|
||
<div class="paragraph">
|
||
<p>Those defines represent ARM SIMD extensions versions.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
You <strong>MUST</strong> compare them with the predef <code>BOOST_HW_SIMD_ARM</code>.
|
||
= <code>BOOST_HW_SIMD_ARM_NEON_VERSION</code>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29">NEON</a>
|
||
ARM extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>1.0.0</strong>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_ppc"><a class="anchor" href="#_boost_hw_simd_ppc"></a>4.7.4. <code>BOOST_HW_SIMD_PPC</code></h4>
|
||
<div class="paragraph">
|
||
<p>The SIMD extension for PowerPC (<strong>if detected</strong>).
|
||
Version number depends on the most recent detected extension.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VECTOR4DOUBLE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ALTIVEC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VEC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VSX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VECTOR4DOUBLE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_PPC_QPX_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__ALTIVEC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_PPC_VMX_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VEC__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_PPC_VMX_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__VSX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_PPC_VSX_VERSION</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_ppc_version"><a class="anchor" href="#_boost_hw_simd_ppc_version"></a>4.7.5. <code>BOOST_HW_SIMD_PPC_*_VERSION</code></h4>
|
||
<div class="paragraph">
|
||
<p>Those defines represent Power PC SIMD extensions versions.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
You <strong>MUST</strong> compare them with the predef <code>BOOST_HW_SIMD_PPC</code>.
|
||
= <code>BOOST_HW_SIMD_PPC_VMX_VERSION</code>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/AltiVec#VMX128">VMX</a> powerpc extension
|
||
version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>1.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_PPC_VSX_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/AltiVec#VSX">VSX</a> powerpc extension version
|
||
number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>1.1.0</strong>.
|
||
= <code>BOOST_HW_SIMD_PPC_QPX_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The QPX powerpc extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>2.0.0</strong>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_x86"><a class="anchor" href="#_boost_hw_simd_x86"></a>4.7.6. <code>BOOST_HW_SIMD_X86</code></h4>
|
||
<div class="paragraph">
|
||
<p>The SIMD extension for x86 (<strong>if detected</strong>).
|
||
Version number depends on the most recent detected extension.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_X64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86_FP >= 1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_X64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86_FP >= 2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSSE3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4_1__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4_2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AVX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FMA__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AVX2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_X64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86_FP >= 1</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE2_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_X64</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE2_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>_M_IX86_FP >= 2</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE2_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE3_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSSE3__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSSE3_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4_1__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE4_1_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4_2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE4_2_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AVX__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_AVX_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FMA__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_FMA3_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__AVX2__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_AVX2_VERSION</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_x86_version"><a class="anchor" href="#_boost_hw_simd_x86_version"></a>4.7.7. <code>BOOST_HW_SIMD_X86_*_VERSION</code></h4>
|
||
<div class="paragraph">
|
||
<p>Those defines represent x86 SIMD extensions versions.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
You <strong>MUST</strong> compare them with the predef <code>BOOST_HW_SIMD_X86</code>.
|
||
= <code>BOOST_HW_SIMD_X86_MMX_VERSION</code>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/MMX_(instruction_set)">MMX</a> x86 extension
|
||
version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>0.99.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSE_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions">SSE</a> x86 extension
|
||
version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>1.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSE2_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/SSE2">SSE2</a> x86 extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>2.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSE3_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/SSE3">SSE3</a> x86 extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>3.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSSE3_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/SSSE3">SSSE3</a> x86 extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>3.1.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSE4_1_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/SSE4#SSE4.1">SSE4_1</a> x86 extension version
|
||
number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>4.1.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_SSE4_2_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/SSE4##SSE4.2">SSE4_2</a> x86 extension version
|
||
number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>4.2.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_AVX_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions">AVX</a> x86
|
||
extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>5.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_FMA3_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/FMA_instruction_set">FMA3</a> x86 extension
|
||
version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>5.2.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_AVX2_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2">AVX2</a>
|
||
x86 extension version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>5.3.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_MIC_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <a href="https://en.wikipedia.org/wiki/Xeon_Phi">MIC</a> (Xeon Phi) x86 extension
|
||
version number.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>9.0.0</strong>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_x86_amd"><a class="anchor" href="#_boost_hw_simd_x86_amd"></a>4.7.8. <code>BOOST_HW_SIMD_X86_AMD</code></h4>
|
||
<div class="paragraph">
|
||
<p>The SIMD extension for x86 (AMD) (<strong>if detected</strong>).
|
||
Version number depends on the most recent detected extension.</p>
|
||
</div>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4A__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FMA4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__XOP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BOOST_HW_SIMD_X86</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>detection</strong></p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table class="tableblock frame-all grid-all stretch">
|
||
<colgroup>
|
||
<col style="width: 50%;">
|
||
<col style="width: 50%;">
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th class="tableblock halign-left valign-top">Symbol</th>
|
||
<th class="tableblock halign-left valign-top">Version</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__SSE4A__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_SSE4A_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__FMA4__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_FMA4_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>__XOP__</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86_XOP_VERSION</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>BOOST_HW_SIMD_X86</code></p></td>
|
||
<td class="tableblock halign-left valign-top"><p class="tableblock">BOOST_HW_SIMD_X86</p></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
This predef includes every other x86 SIMD extensions and also has other
|
||
more specific extensions (FMA4, XOP, SSE4a). You should use this predef
|
||
instead of <code>BOOST_HW_SIMD_X86</code> to test if those specific extensions have
|
||
been detected.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_hw_simd_x86_amd_version"><a class="anchor" href="#_boost_hw_simd_x86_amd_version"></a>4.7.9. <code>BOOST_HW_SIMD_X86_AMD_*_VERSION</code></h4>
|
||
<div class="paragraph">
|
||
<p>Those defines represent x86 (AMD specific) SIMD extensions versions.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
You <strong>MUST</strong> compare them with the predef <code>BOOST_HW_SIMD_X86_AMD</code>.
|
||
= <code>BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION</code>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/SSE4##SSE4A">SSE4A</a> x86 extension (AMD specific).</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>4.0.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_AMD_FMA4_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set">FMA4</a> x86 extension (AMD specific).</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>5.1.0</strong>.
|
||
= <code>BOOST_HW_SIMD_X86_AMD_XOP_VERSION</code></p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><a href="https://en.wikipedia.org/wiki/XOP_instruction_set">XOP</a> x86 extension (AMD specific).</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Version number is: <strong>5.1.1</strong>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_other_macros"><a class="anchor" href="#_other_macros"></a>4.8. Other macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_endian"><a class="anchor" href="#_boost_endian"></a>4.8.1. <code>BOOST_ENDIAN_*</code></h4>
|
||
<div class="paragraph">
|
||
<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>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_ENDIAN_BIG_BYTE</code>, byte-swapped big-endian.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_ENDIAN_BIG_WORD</code>, word-swapped big-endian.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_ENDIAN_LITTLE_BYTE</code>, byte-swapped little-endian.</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_ENDIAN_LITTLE_WORD</code>, word-swapped little-endian.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>This implementation is a compilation of various publicly available
|
||
information and acquired knowledge:</p>
|
||
</div>
|
||
<div class="olist arabic">
|
||
<ol class="arabic">
|
||
<li>
|
||
<p>The indispensable documentation of "Pre-defined Compiler Macros"
|
||
<a href="http://sourceforge.net/p/predef/wiki/Endianness">Endianness</a>.</p>
|
||
</li>
|
||
<li>
|
||
<p>The various endian specifications available in the
|
||
<a href="http://wikipedia.org/">Wikipedia</a> computer architecture pages.</p>
|
||
</li>
|
||
<li>
|
||
<p>Generally available searches for headers that define endianness.</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_arch_word_bits"><a class="anchor" href="#_boost_arch_word_bits"></a>4.8.2. <code>BOOST_ARCH_WORD_BITS</code></h4>
|
||
<div class="paragraph">
|
||
<p>Detects the native word size, in bits, for the current architecture. There are
|
||
two types of macros for this detection:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_ARCH_WORD_BITS</code>, gives the number of word size bits
|
||
(16, 32, 64).</p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_ARCH_WORD_BITS_16</code>, <code>BOOST_ARCH_WORD_BITS_32</code>, and
|
||
<code>BOOST_ARCH_WORD_BITS_64</code>, indicate when the given word size is
|
||
detected.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>They allow for both single checks and direct use of the size in code.</p>
|
||
</div>
|
||
<div class="admonitionblock note">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">ℹ</div>
|
||
</td>
|
||
<td class="content">
|
||
The word size is determined manually on each architecture. Hence use of
|
||
the <code>wordsize.h</code> header will also include all the architecture headers.
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_predef_workaround"><a class="anchor" href="#_boost_predef_workaround"></a>4.8.3. <code>BOOST_PREDEF_WORKAROUND</code></h4>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-n">BOOST_PREDEF_WORKAROUND</span><span class="tok-p">(</span><span class="tok-n">symbol</span><span class="tok-p">,</span><span class="tok-n">comp</span><span class="tok-p">,</span><span class="tok-n">major</span><span class="tok-p">,</span><span class="tok-n">minor</span><span class="tok-p">,</span><span class="tok-n">patch</span><span class="tok-p">)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Usage:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if BOOST_PREDEF_WORKAROUND(BOOST_COMP_CLANG,<,3,0,0)</span>
|
||
<span class="tok-c1">// Workaround for old clang compilers..</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Defines a comparison against two version numbers that depends on the definion
|
||
of <code>BOOST_STRICT_CONFIG</code>. When <code>BOOST_STRICT_CONFIG</code> is defined this will expand
|
||
to a value convertible to <code>false</code>. Which has the effect of disabling all code
|
||
conditionally guarded by <code>BOOST_PREDEF_WORKAROUND</code>. When <code>BOOST_STRICT_CONFIG</code>
|
||
is undefine this expand to test the given <code>symbol</code> version value with the
|
||
<code>comp</code> comparison against <code>BOOST_VERSION_NUMBER(major,minor,patch)</code>.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_predef_tested_at"><a class="anchor" href="#_boost_predef_tested_at"></a>4.8.4. <code>BOOST_PREDEF_TESTED_AT</code></h4>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-n">BOOST_PREDEF_TESTED_AT</span><span class="tok-p">(</span><span class="tok-n">symbol</span><span class="tok-p">,</span><span class="tok-n">major</span><span class="tok-p">,</span><span class="tok-n">minor</span><span class="tok-p">,</span><span class="tok-n">patch</span><span class="tok-p">)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Usage:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-cp">#if BOOST_PREDEF_TESTED_AT(BOOST_COMP_CLANG,3,5,0)</span>
|
||
<span class="tok-c1">// Needed for clang, and last checked for 3.5.0.</span>
|
||
<span class="tok-cp">#endif</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Defines a comparison against two version numbers that depends on the definion
|
||
of <code>BOOST_STRICT_CONFIG</code> and <code>BOOST_DETECT_OUTDATED_WORKAROUNDS</code>.
|
||
When <code>BOOST_STRICT_CONFIG</code> is defined this will expand to a value convertible
|
||
to <code>false</code>. Which has the effect of disabling all code
|
||
conditionally guarded by <code>BOOST_PREDEF_TESTED_AT</code>. When <code>BOOST_STRICT_CONFIG</code>
|
||
is undefined this expand to either:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>A value convertible to <code>true</code> when <code>BOOST_DETECT_OUTDATED_WORKAROUNDS</code> is not
|
||
defined.</p>
|
||
</li>
|
||
<li>
|
||
<p>A value convertible <code>true</code> when the expansion of
|
||
<code>BOOST_PREDEF_WORKAROUND(symbol, ⇐, major, minor, patch)</code> is <code>true</code> and
|
||
<code>BOOST_DETECT_OUTDATED_WORKAROUNDS</code> is defined.</p>
|
||
</li>
|
||
<li>
|
||
<p>A compile error when the expansion of
|
||
<code>BOOST_PREDEF_WORKAROUND(symbol, >, major, minor, patch)</code> is true and
|
||
<code>BOOST_DETECT_OUTDATED_WORKAROUNDS</code> is defined.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_version_definition_macros"><a class="anchor" href="#_version_definition_macros"></a>4.9. Version definition macros</h3>
|
||
<div class="sect3">
|
||
<h4 id="_boost_version_number"><a class="anchor" href="#_boost_version_number"></a>4.9.1. <code>BOOST_VERSION_NUMBER</code></h4>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-n">BOOST_VERSION_NUMBER</span><span class="tok-p">(</span><span class="tok-n">major</span><span class="tok-p">,</span><span class="tok-n">minor</span><span class="tok-p">,</span><span class="tok-n">patch</span><span class="tok-p">)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Defines standard version numbers, with these properties:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>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.</p>
|
||
</li>
|
||
<li>
|
||
<p>The <code>major</code> number can be in the [0,99] range.</p>
|
||
</li>
|
||
<li>
|
||
<p>The <code>minor</code> number can be in the [0,99] range.</p>
|
||
</li>
|
||
<li>
|
||
<p>The <code>patch</code> number can be in the [0,99999] range.</p>
|
||
</li>
|
||
<li>
|
||
<p>Values can be specified in any base. As the defined value
|
||
is an constant expression.</p>
|
||
</li>
|
||
<li>
|
||
<p>Value can be directly used in both preprocessor and compiler
|
||
expressions for comparison to other similarly defined values.</p>
|
||
</li>
|
||
<li>
|
||
<p>The implementation enforces the individual ranges for the
|
||
major, minor, and patch numbers. And values over the ranges
|
||
are truncated (modulo).</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="cpp"><span></span><span class="tok-n">BOOST_VERSION_NUMBER_MAJOR</span><span class="tok-p">(</span><span class="tok-n">N</span><span class="tok-p">),</span> <span class="tok-n">BOOST_VERSION_NUMBER_MINOR</span><span class="tok-p">(</span><span class="tok-n">N</span><span class="tok-p">),</span> <span class="tok-n">BOOST_VERSION_NUMBER_PATCH</span><span class="tok-p">(</span><span class="tok-n">N</span><span class="tok-p">)</span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The macros extract the major, minor, and patch portion from a well formed
|
||
version number resulting in a preprocessor expression in the range of
|
||
[0,99] or [0,99999] for the major and minor, or patch numbers
|
||
respectively.</p>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_predef_make_macros"><a class="anchor" href="#_boost_predef_make_macros"></a>4.9.2. <code>BOOST_PREDEF_MAKE_..</code> macros</h4>
|
||
<div class="paragraph">
|
||
<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>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>The base of the specified version number. “BOOST_PREDEF_MAKE_0X” for
|
||
hexadecimal digits, and “BOOST_PREDEF_MAKE_10” for decimal digits.</p>
|
||
</li>
|
||
<li>
|
||
<p>The format of the vendor version number. Where “V” indicates the version digits,
|
||
“R” indicates the revision digits, “P” indicates the patch digits, and “0”
|
||
indicates an ignored digit.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Macros are:</p>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VRP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VVRP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VRPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VVRR(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VRRPPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VVRRP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VRRPP000(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_0X_VVRRPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VR0(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRP000(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRPPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRR(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRRPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VRR000(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VV00(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRR(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRRP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRRPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRRPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRR0PP00(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_10_VVRR00PP00(V)</code></p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect3">
|
||
<h4 id="_boost_predef_make_date_macros"><a class="anchor" href="#_boost_predef_make_date_macros"></a>4.9.3. <code>BOOST_PREDEF_MAKE_*..</code> date macros</h4>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_DATE(Y,M,D)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_YYYYMMDD(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_YYYY(V)</code></p>
|
||
</li>
|
||
<li>
|
||
<p><code>BOOST_PREDEF_MAKE_YYYYMM(V)</code></p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_check_utilities"><a class="anchor" href="#_check_utilities"></a>5. Check Utilities</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<p>The <code>predef_check</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>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_predef_check_programs"><a class="anchor" href="#_predef_check_programs"></a>5.1. <code>predef_check</code> programs</h3>
|
||
<div class="paragraph">
|
||
<p>Even though there is only one <code>predef_check</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>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>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The expression syntax is simple:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span>predef-definition<span class="tok-w"> </span>[<span class="tok-w"> </span>relational-operator<span class="tok-w"> </span>version-value<span class="tok-w"> </span>]<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><em>predef-definition</em> can be any of the Predef definitions. For
|
||
example <code>BOOST_COMP_GCC</code>.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><em>relational-operator</em> can be any of: <code>></code>, <code><</code>, <code>>=</code>, <code>⇐</code>,
|
||
<code>==</code> and <code>!=</code>.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p><em>version-number</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>x.y</code> is equivalent to <code>x.y.0</code> and <code>x</code> is equivalent to
|
||
<code>x.0.0</code>.</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The <em>relations-operator</em> and <em>version-number</em> can be omitted. In
|
||
which case it is equivalent to:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span>predef-definition<span class="tok-w"> </span>><span class="tok-w"> </span>0.0.0<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_using_with_boost_build"><a class="anchor" href="#_using_with_boost_build"></a>5.2. Using with Boost.Build</h3>
|
||
<div class="paragraph">
|
||
<p>You can use the <code>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>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-nb">import</span><span class="tok-w"> </span>path-to-predef-src/tools/check/predef<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>check<span class="tok-w"> </span>require<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>predef-check<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>;<span class="tok-w"></span>
|
||
|
||
<span class="tok-nb">exe</span><span class="tok-w"> </span>my_windows_program<span class="tok-w"> </span>:<span class="tok-w"> </span>windows_source.cpp<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>[<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>"BOOST_OS_WINDOWS"<span class="tok-w"> </span>]<span class="tok-w"> </span>;<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>That simple use case will skip building the <code>my_windows_program</code>
|
||
unless one is building for Windows. Like the direct <code>predef_check</code>
|
||
you can pass multiple expressions using relational comparisons.
|
||
For example:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-nb">import</span><span class="tok-w"> </span>path-to-predef-src/tools/check/predef<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>check<span class="tok-w"> </span>require<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>predef-check<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>;<span class="tok-w"></span>
|
||
|
||
<span class="tok-nb">lib</span><span class="tok-w"> </span>my_special_lib<span class="tok-w"> </span>:<span class="tok-w"> </span>source.cpp<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>[<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>"BOOST_OS_WINDOWS<span class="tok-w"> </span>!=<span class="tok-w"> </span>0"<span class="tok-w"> </span>"BOOST_OS_VMS<span class="tok-w"> </span>!=<span class="tok-w"> </span>0"]<span class="tok-w"> </span>;<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>And in that case the <code>my_special_lib</code> is built only when the OS is
|
||
not Windows or VMS. The <code>requires</code> rule is a special case of the
|
||
<code>check</code> rule. And is defined in terms of it:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-k">rule</span><span class="tok-w"> </span><span class="tok-nf">require</span><span class="tok-w"> </span><span class="tok-p">(</span><span class="tok-w"> </span><span class="tok-nv">expressions</span><span class="tok-w"> </span><span class="tok-p">+</span><span class="tok-w"> </span><span class="tok-p">:</span><span class="tok-w"> </span><span class="tok-nv">language</span><span class="tok-w"> </span><span class="tok-p">?</span><span class="tok-w"> </span><span class="tok-p">)</span><span class="tok-w"></span>
|
||
{<span class="tok-w"></span>
|
||
<span class="tok-w"> </span><span class="tok-k">return</span><span class="tok-w"> </span>[<span class="tok-w"> </span>check<span class="tok-w"> </span><span class="tok-si">$(expressions)</span><span class="tok-w"> </span>:<span class="tok-w"> </span><span class="tok-si">$(language)</span><span class="tok-w"> </span>:<span class="tok-w"> </span>:<span class="tok-w"> </span><span class="tok-na"><build></span>no<span class="tok-w"> </span>]<span class="tok-w"> </span>;<span class="tok-w"></span>
|
||
}<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>The expression can also use explicit "and", "or" logical operators
|
||
to for more complex checks:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-nb">import</span><span class="tok-w"> </span>path-to-predef-src/tools/check/predef<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>check<span class="tok-w"> </span>require<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>predef-check<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>;<span class="tok-w"></span>
|
||
|
||
<span class="tok-nb">lib</span><span class="tok-w"> </span>my_special_lib<span class="tok-w"> </span>:<span class="tok-w"> </span>source.cpp<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>[<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>"BOOST_OS_WINDOWS"<span class="tok-w"> </span>or<span class="tok-w"> </span>"BOOST_OS_VMS"]<span class="tok-w"> </span>;<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>You can use the <code>check</code> rule for more control and to implement
|
||
something other than control of what gets built. The definition
|
||
for the <code>check</code> rule is:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-k">rule</span><span class="tok-w"> </span><span class="tok-nf">check</span><span class="tok-w"> </span><span class="tok-p">(</span><span class="tok-w"> </span><span class="tok-nv">expressions</span><span class="tok-w"> </span><span class="tok-p">+</span><span class="tok-w"> </span><span class="tok-p">:</span><span class="tok-w"> </span><span class="tok-nv">language</span><span class="tok-w"> </span><span class="tok-p">?</span><span class="tok-w"> </span><span class="tok-p">:</span><span class="tok-w"> </span><span class="tok-nv">true-properties</span><span class="tok-w"> </span><span class="tok-p">*</span><span class="tok-w"> </span><span class="tok-p">:</span><span class="tok-w"> </span><span class="tok-nv">false-properties</span><span class="tok-w"> </span><span class="tok-p">*</span><span class="tok-w"> </span><span class="tok-p">)</span><span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>When invoked as a requirement of a Boost Build target this rule
|
||
will add the <code>true-properties</code> to the target if all the <code>expressions</code>
|
||
evaluate to true. Otherwise the <code>false-properties</code> get added as
|
||
requirements. For example you could use it to enable or disable
|
||
features in your programs:</p>
|
||
</div>
|
||
<div class="listingblock">
|
||
<div class="content">
|
||
<pre class="pygments highlight"><code data-lang="jam"><span></span><span class="tok-nb">import</span><span class="tok-w"> </span>path-to-predef-src/tools/check/predef<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>check<span class="tok-w"> </span>require<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>predef-check<span class="tok-w"> </span>predef-require<span class="tok-w"> </span>;<span class="tok-w"></span>
|
||
|
||
<span class="tok-nb">exe</span><span class="tok-w"> </span>my_special_exe<span class="tok-w"> </span>:<span class="tok-w"> </span>source.cpp<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>[<span class="tok-w"> </span>predef-check<span class="tok-w"> </span>"BOOST_OS_WINDOWS<span class="tok-w"> </span>==<span class="tok-w"> </span>0"<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span>:<span class="tok-w"> </span><span class="tok-na"><define></span>ENABLE_WMF=0<span class="tok-w"></span>
|
||
<span class="tok-w"> </span>:<span class="tok-w"> </span><span class="tok-na"><define></span>ENABLE_WMF=1<span class="tok-w"> </span>]<span class="tok-w"> </span>;<span class="tok-w"></span></code></pre>
|
||
</div>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>For both <code>check</code> and <code>require</code> the <code>language</code> argument controls
|
||
which variant of the <code>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>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_history"><a class="anchor" href="#_history"></a>6. History</h2>
|
||
<div class="sectionbody">
|
||
<div class="sect2">
|
||
<h3 id="_1_13"><a class="anchor" href="#_1_13"></a>6.1. 1.13</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Add <code>ARCH_PPC_64</code> predef.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix <code>ARCH_WORD_BITS*</code> redefinition warnings/errors.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>ARCH_E2K</code>, Elbrus 2000, architecture from Konstantin Ivlev.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix not handling recent C++ version that go above 10.x version.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_12"><a class="anchor" href="#_1_12"></a>6.2. 1.12</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Switch to using the endian.h header on OpenBSD. (Brad Smith)</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix not handling recent versions of stdcxx that go above version 9.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix including sub-BSD OS headers directly causing redef warnings.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add CI testing of direct inclusion of all headers.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add CI testing on FreeBSD for clang and gcc.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>WORD_BITS</code> set of predefs to detect the architecture word size.
|
||
Initial implementation inspired by submission from Mikhail Komarov.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add CI testing for Cygwin 32 and 64.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_11"><a class="anchor" href="#_1_11"></a>6.3. 1.11</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Add <code>BOOST_ARCH_RISCV</code>. (from Andreas Schwab)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add RISC-V endian detection. (from Thomas Petazzoni)</p>
|
||
</li>
|
||
<li>
|
||
<p>Convert documentation to AsciiDoctor format.</p>
|
||
</li>
|
||
<li>
|
||
<p>Document correct versions for C++ standard.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix compile error from not available header when building in WinCE.</p>
|
||
</li>
|
||
<li>
|
||
<p>Remove deprecated <code>BOOST_OS_ANDROID</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix compile for Wine. (Kevin Puetz)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_10"><a class="anchor" href="#_1_10"></a>6.4. 1.10</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fix bad include of sub-BSD os headers from main BSD header.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix use of deprecated <code>TARGET_IPHONE_SIMULATOR</code> instead of newer
|
||
<code>TARGET_OS_SIMULATOR</code>.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>BOOST_PLAT_ANDROID</code> to resolve conflict between Linux and Android
|
||
OS predefs. The <code>BOOST_OS_ANDROID</code> predef is now deprecated and will be
|
||
removed in a future release.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add support for consuming Predef as a CMake project.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add support for consuming Predef as a standalone B2 project.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_9"><a class="anchor" href="#_1_9"></a>6.5. 1.9</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fixes for <code>BOOST_COMP_NVCC*</code> predefs. (from Benjamin Worpitz)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add specific version information for Cygwin OS predef. (from James E. King III)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_8"><a class="anchor" href="#_1_8"></a>6.6. 1.8</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Add support for __ARM_ARCH macro. (from Tim Blechmann)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add detection for PTX architecture. (from Benjamin Worpitz)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add nvcc compiler detection. (from Benjamin Worpitz)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add support for detecting CUDA. (from Benjamin Worpitz)</p>
|
||
</li>
|
||
<li>
|
||
<p>Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_7"><a class="anchor" href="#_1_7"></a>6.7. 1.7</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fix BOOST_ARCH_PARISK/BOOST_ARCH_PARISC typo.</p>
|
||
</li>
|
||
<li>
|
||
<p>Improved Windows Universal Platform detection. (from James E. King, III)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add detection for CloudABI with cloudlibc. (from James E. King, III)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_6"><a class="anchor" href="#_1_6"></a>6.8. 1.6</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fix Intel C/C++ version 9999 detection to be 12.1.0.</p>
|
||
</li>
|
||
<li>
|
||
<p>Addition of <code>BOOST_PREDEF_WORKAROUND</code> and <code>BOOST_PREDEF_TESTED_AT</code> macros
|
||
for defect workarounds and detection.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add ARM64 MSVC SIMD detection. (from Minmin Gong)</p>
|
||
</li>
|
||
<li>
|
||
<p>Add detection of iOS simulator vs device as a platform choice. (from Ruslan
|
||
Baratov)</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix MinGW incorrect header guard. (from Ruslan Baratov)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_5"><a class="anchor" href="#_1_5"></a>6.9. 1.5</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fix Intel C/C++ compiler version specification.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>BOOST_VERSION_NUMBER_MAJOR</code>, <code>BOOST_VERSION_NUMBER_MINOR</code>,
|
||
<code>BOOST_VERSION_NUMBER_PATCH</code> macros to extract components from valid version
|
||
numbers.</p>
|
||
</li>
|
||
<li>
|
||
<p>Change VS version numbering. Version after VS2015 will use the compiler
|
||
version instead of the varied product versions.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_4_1"><a class="anchor" href="#_1_4_1"></a>6.10. 1.4.1</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Small fixes for some redefinition errors, and mispelled macros.</p>
|
||
</li>
|
||
<li>
|
||
<p>Slightly rearrangement of structure to comply with current library requirements.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_4"><a class="anchor" href="#_1_4"></a>6.11. 1.4</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Add detection of SIMD hardware. With the addition of the <code>BOOST_HW_*</code>
|
||
category (from Charly Chevalier).</p>
|
||
</li>
|
||
<li>
|
||
<p>Add compile only version of check utilities to address cross-compile
|
||
use cases. And changed the BBv2 check support to use compile only checks.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix test warnings.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix typos on <code>AVAILABLE</code> macros for Windows Platform. (from Vemund Handeland)</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_3"><a class="anchor" href="#_1_3"></a>6.12. 1.3</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Fix many problems with <code>predef_check</code> functionality.</p>
|
||
</li>
|
||
<li>
|
||
<p>Update SunPro detection to accommodate latest version of compiler from Oracle.</p>
|
||
</li>
|
||
<li>
|
||
<p>Addition of Travis-CI and Appveyor testing.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>and</code> and <code>or</code> logical operators for <code>predef_check</code> expression on the Boost Build side.</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix <code>BOOST_ARCH_PARISC</code> to correctly spelled name (from Graham Hanson).</p>
|
||
</li>
|
||
<li>
|
||
<p>Fix <code>MAKE_YYYYM</code> macros to correctly limit the month (from rick68).</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_2"><a class="anchor" href="#_1_2"></a>6.13. 1.2</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Account for skip in Visual Studio product version vs. compiler version.
|
||
This supports version of VS 2015 an onward.</p>
|
||
</li>
|
||
<li>
|
||
<p>Add detection of Haiku OS (from Jessica Hamilton).</p>
|
||
</li>
|
||
<li>
|
||
<p>Some fixes to endian detection for Android (from mstahl-at-redhat.com).</p>
|
||
</li>
|
||
<li>
|
||
<p>Add missing <code>BOOST_PREDEF_MAKE_0X_VVRRPP</code> macro (from Erik Lindahl).</p>
|
||
</li>
|
||
<li>
|
||
<p>Add <code>predef_check</code> program and BBv2 integration for build configuration
|
||
checks.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="sect2">
|
||
<h3 id="_1_1"><a class="anchor" href="#_1_1"></a>6.14. 1.1</h3>
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Addition of <code>BOOST_PLAT_*</code> platform definitions for MinGW and
|
||
Windows platform variants.</p>
|
||
</li>
|
||
<li>
|
||
<p>Detection of ARM architecture for Windows compilers to target
|
||
mobile devices of Windows 8.</p>
|
||
</li>
|
||
<li>
|
||
<p>Improved ARM detection for 64 bit ARM.</p>
|
||
</li>
|
||
<li>
|
||
<p>Added detection of iOS an an operating system.</p>
|
||
</li>
|
||
<li>
|
||
<p>Improved detection of endianess on some platforms.</p>
|
||
</li>
|
||
<li>
|
||
<p>Addition of exclusive plus emulated definitions for platform
|
||
and compiler detection.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="admonitionblock warning">
|
||
<table>
|
||
<tr>
|
||
<td class="icon">
|
||
<div class="title">⚠</div>
|
||
</td>
|
||
<td class="content">
|
||
The big change for this version is the restructuring of the
|
||
definitions to avoid duplicate definitions in one category. That is, only one
|
||
<code>BOOST_OS_*</code>, <code>BOOST_COMP_*</code>, and <code>BOOST_PLAT_*</code> variant will be detected
|
||
(except for sub-categories).
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_to_do"><a class="anchor" href="#_to_do"></a>7. To Do</h2>
|
||
<div class="sectionbody">
|
||
<div class="ulist">
|
||
<ul>
|
||
<li>
|
||
<p>Improve reference documentation.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_acknowledgements"><a class="anchor" href="#_acknowledgements"></a>8. Acknowledgements</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<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/">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>
|
||
</div>
|
||
<div class="paragraph">
|
||
<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>
|
||
</div>
|
||
</div>
|
||
<div class="sect1">
|
||
<h2 id="_colophon"><a class="anchor" href="#_colophon"></a>Colophon</h2>
|
||
<div class="sectionbody">
|
||
<div class="paragraph">
|
||
<p>Distributed under the Boost Software License, Version 1.0.
|
||
(See accompanying file LICENSE_1_0.txt or copy at
|
||
<a href="https://www.boost.org/LICENSE_1_0.txt" class="bare">https://www.boost.org/LICENSE_1_0.txt</a>)</p>
|
||
</div>
|
||
<div class="paragraph">
|
||
<p>Copyright 2005-2020 Rene Rivera; Copyright 2015 Charly Chevalier; Copyright 2015 Joel Falcou</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html> |