Release 1.12

This commit is contained in:
Rene Rivera
2021-01-06 08:01:05 -06:00
41 changed files with 603 additions and 303 deletions

View File

@ -32,139 +32,44 @@ stages:
- job: 'Linux' - job: 'Linux'
strategy: strategy:
matrix: matrix:
GCC 9 (GNU): GCC 10 (GNU): { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' }
TOOLSET: gcc GCC 10 (ISO): { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc, B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' }
CXX: g++-9 GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
PACKAGES: g++-9 GCC 9: { CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu' GCC 8: { CXX: g++-8, PACKAGES: g++-8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
VM_IMAGE: 'ubuntu-18.04' GCC 7: { CXX: g++-7, PACKAGES: g++-7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 9 (ISO): GCC 6: { CXX: g++-6, PACKAGES: g++-6, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
TOOLSET: gcc GCC 5: { CXX: g++-5, PACKAGES: g++-5, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
CXX: g++-9 GCC 4.9: { CXX: g++-4.9, PACKAGES: g++-4.9, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
PACKAGES: g++-9 GCC 4.8: { CXX: g++-4.8, PACKAGES: g++-4.8, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso' GCC 4.7: { CXX: g++-4.7, PACKAGES: g++-4.7, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
VM_IMAGE: 'ubuntu-18.04' Clang 11: { CXX: clang++-11, PACKAGES: clang-11, LLVM_OS: bionic, LLVM_VER: 11, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
GCC 9: Clang 10: { CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
TOOLSET: gcc Clang 9: { CXX: clang++-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
CXX: g++-9 Clang 8: { CXX: clang++-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
PACKAGES: g++-9 Clang 7: { CXX: clang++-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
VM_IMAGE: 'ubuntu-18.04' Clang 6.0: { CXX: clang++-6.0, PACKAGES: clang-6.0, LLVM_OS: bionic, LLVM_VER: 6.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
GCC 8: Clang 5.0: { CXX: clang++-5.0, PACKAGES: clang-5.0, LLVM_OS: bionic, LLVM_VER: 5.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
TOOLSET: gcc Clang 4.0: { CXX: clang++-4.0, PACKAGES: clang-4.0, LLVM_OS: xenial, LLVM_VER: 4.0, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
CXX: g++-8 Clang 3.9: { CXX: clang++-3.9, PACKAGES: clang-3.9, LLVM_OS: xenial, LLVM_VER: 3.9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
PACKAGES: g++-8 Clang 3.8: { CXX: clang++-3.8, PACKAGES: clang-3.8, LLVM_OS: xenial, LLVM_VER: 3.8, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
VM_IMAGE: 'ubuntu-18.04' Clang 3.7: { CXX: clang++-3.7, PACKAGES: clang-3.7, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
GCC 7: Clang 3.6: { CXX: clang++-3.6, PACKAGES: clang-3.6, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
TOOLSET: gcc Clang 3.5: { CXX: clang++-3.5, PACKAGES: clang-3.5, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
CXX: g++-7
PACKAGES: g++-7
VM_IMAGE: 'ubuntu-18.04'
GCC 6:
TOOLSET: gcc
CXX: g++-6
PACKAGES: g++-6
VM_IMAGE: 'ubuntu-18.04'
GCC 5:
TOOLSET: gcc
CXX: g++-5
PACKAGES: g++-5
VM_IMAGE: 'ubuntu-18.04'
GCC 4.9:
TOOLSET: gcc
CXX: g++-4.9
PACKAGES: g++-4.9
VM_IMAGE: 'ubuntu-16.04'
GCC 4.8:
TOOLSET: gcc
CXX: g++-4.8
PACKAGES: g++-4.8
VM_IMAGE: 'ubuntu-16.04'
GCC 4.7:
TOOLSET: gcc
CXX: g++-4.7
PACKAGES: g++-4.7
VM_IMAGE: 'ubuntu-16.04'
Clang 9:
TOOLSET: clang
CXX: clang++-9
PACKAGES: clang-9
LLVM_REPO: llvm-toolchain-xenial-9
VM_IMAGE: 'ubuntu-18.04'
Clang 8:
TOOLSET: clang
CXX: clang++-8
PACKAGES: clang-8
LLVM_REPO: llvm-toolchain-xenial-8
VM_IMAGE: 'ubuntu-18.04'
Clang 7:
TOOLSET: clang
CXX: clang++-7
PACKAGES: clang-7
LLVM_REPO: llvm-toolchain-xenial-7
VM_IMAGE: 'ubuntu-18.04'
Clang 6:
TOOLSET: clang
CXX: clang++-6.0
PACKAGES: clang-6.0
LLVM_REPO: llvm-toolchain-xenial-6.0
VM_IMAGE: 'ubuntu-18.04'
Clang 5:
TOOLSET: clang
CXX: clang++-5.0
PACKAGES: clang-5.0
LLVM_REPO: llvm-toolchain-xenial-5.0
VM_IMAGE: 'ubuntu-18.04'
Clang 4:
TOOLSET: clang
CXX: clang++-4.0
PACKAGES: clang-4.0
LLVM_REPO: llvm-toolchain-xenial-4.0
VM_IMAGE: 'ubuntu-18.04'
Clang 3.9:
TOOLSET: clang
CXX: clang++-3.9
PACKAGES: clang-3.9
VM_IMAGE: 'ubuntu-18.04'
Clang 3.8:
TOOLSET: clang
CXX: clang++-3.8
PACKAGES: clang-3.8
VM_IMAGE: 'ubuntu-16.04'
Clang 3.7:
TOOLSET: clang
CXX: clang++-3.7
PACKAGES: clang-3.7
VM_IMAGE: 'ubuntu-16.04'
Clang 3.6:
TOOLSET: clang
CXX: clang++-3.6
PACKAGES: clang-3.6
VM_IMAGE: 'ubuntu-16.04'
Clang 3.5:
TOOLSET: clang
CXX: clang++-3.5
PACKAGES: clang-3.5
VM_IMAGE: 'ubuntu-16.04'
pool: pool:
vmImage: $(VM_IMAGE) vmImage: $(VM_IMAGE)
steps: steps:
- bash: | - bash: |
set -e set -e
uname -a uname -a
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" ./tools/ci/linux-cxx-install.sh
if test -n "${LLVM_REPO}" ; then
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo -E apt-add-repository "deb http://apt.llvm.org/xenial/ ${LLVM_REPO} main"
fi
sudo -E apt-get update
sudo -E apt-get -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
displayName: 'Install CXX' displayName: 'Install CXX'
- bash: | - bash: |
set -e set -e
pushd ${HOME} pushd ${HOME}
wget -nv https://github.com/boostorg/build/archive/master.tar.gz wget -nv https://github.com/boostorg/build/archive/develop.tar.gz
tar -zxf master.tar.gz tar -zxf develop.tar.gz
cd build-master cd build-develop
CXX= ./bootstrap.sh CXX= ./bootstrap.sh
sudo ./b2 install sudo ./b2 install
popd popd
@ -174,53 +79,39 @@ stages:
CXX_PATH=`which ${CXX}` CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
pushd test pushd test
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers
popd popd
displayName: Test displayName: Test
- job: 'macOS' - job: 'macOS'
strategy: strategy:
matrix: matrix:
Xcode 11.4: Xcode 11.4.1:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
XCODE_APP: /Applications/Xcode_11.4_beta.app XCODE_APP: /Applications/Xcode_11.4.1.app
VM_IMAGE: 'macOS-10.15' VM_IMAGE: 'macOS-10.15'
Xcode 11.3.1: Xcode 11.3.1:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
XCODE_APP: /Applications/Xcode_11.3.1.app XCODE_APP: /Applications/Xcode_11.3.1.app
VM_IMAGE: 'macOS-10.15' VM_IMAGE: 'macOS-10.15'
Xcode 11.3: Xcode 11.2.1:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
XCODE_APP: /Applications/Xcode_11.3.app XCODE_APP: /Applications/Xcode_11.2.1.app
VM_IMAGE: 'macOS-10.15' VM_IMAGE: 'macOS-10.15'
Xcode 11.2: Xcode 10.3:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
XCODE_APP: /Applications/Xcode_11.2.app XCODE_APP: /Applications/Xcode_10.3.app
VM_IMAGE: 'macOS-10.15' VM_IMAGE: 'macOS-10.14'
Xcode 11.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.1.app
VM_IMAGE: 'macOS-10.15'
Xcode 11.0:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.app
VM_IMAGE: 'macOS-10.15'
Xcode 10.2.1: Xcode 10.2.1:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
XCODE_APP: /Applications/Xcode_10.2.1.app XCODE_APP: /Applications/Xcode_10.2.1.app
VM_IMAGE: 'macOS-10.14' VM_IMAGE: 'macOS-10.14'
Xcode 10.2:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_10.2.app
VM_IMAGE: 'macOS-10.14'
Xcode 10.1: Xcode 10.1:
TOOLSET: clang TOOLSET: clang
CXX: clang++ CXX: clang++
@ -244,9 +135,9 @@ stages:
- bash: | - bash: |
set -e set -e
pushd ${HOME} pushd ${HOME}
wget -nv https://github.com/boostorg/build/archive/master.tar.gz wget -nv https://github.com/boostorg/build/archive/develop.tar.gz
tar -zxf master.tar.gz tar -zxf develop.tar.gz
cd build-master cd build-develop
CXX= ./bootstrap.sh CXX= ./bootstrap.sh
sudo ./b2 install sudo ./b2 install
popd popd
@ -256,7 +147,8 @@ stages:
CXX_PATH=`which ${CXX}` CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
pushd test pushd test
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} b2 --verbose-test -a toolset=${TOOLSET} ${B2_ARGS} predef-info
b2 --debug-configuration -a toolset=${TOOLSET} ${B2_ARGS} predef predef-headers
popd popd
displayName: Test displayName: Test
@ -313,7 +205,7 @@ stages:
steps: steps:
- script: | - script: |
cd %BUILD_SOURCESDIRECTORY%/.. cd %BUILD_SOURCESDIRECTORY%/..
curl "https://github.com/boostorg/build/archive/master.zip" -L -o b2.zip curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip
displayName: Download B2 displayName: Download B2
- task: ExtractFiles@1 - task: ExtractFiles@1
inputs: inputs:
@ -323,11 +215,12 @@ stages:
displayName: Extract B2 displayName: Extract B2
- script: | - script: |
echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam
cd %BUILD_SOURCESDIRECTORY%/../build-master cd %BUILD_SOURCESDIRECTORY%/../build-develop
cmd.exe /c bootstrap.bat cmd.exe /c bootstrap.bat
displayName: Install B2 displayName: Install B2
- script: | - script: |
set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-master set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-develop
cd %BUILD_SOURCESDIRECTORY%/test cd %BUILD_SOURCESDIRECTORY%/test
%BUILD_SOURCESDIRECTORY%/../build-master/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% %BUILD_SOURCESDIRECTORY%/../build-develop/b2.exe --verbose-test -a toolset=%TOOLSET% %B2_ARGS% predef-info
%BUILD_SOURCESDIRECTORY%/../build-develop/b2.exe --debug-configuration -a toolset=%TOOLSET% %B2_ARGS% predef predef-headers
displayName: Test displayName: Test

View File

@ -7,6 +7,17 @@ http://www.boost.org/LICENSE_1_0.txt)
= History = History
== 1.12
* Switch to using the endian.h header on OpenBSD. (Brad Smith)
* Fix not handling recent versions of stdcxx that go above version 9.
* Fix including sub-BSD OS headers directly causing redef warnings.
* Add CI testing of direct inclusion of all headers.
* Add CI testing on FreeBSD for clang and gcc.
* Add `WORD_BITS` set of predefs to detect the architecture word size.
Initial implementation inspired by submission from Mikhail Komarov.
* Add CI testing for Cygwin 32 and 64.
== 1.11 == 1.11
* Add `BOOST_ARCH_RISCV`. (from Andreas Schwab) * Add `BOOST_ARCH_RISCV`. (from Andreas Schwab)

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.10"> <meta name="generator" content="Asciidoctor 2.0.12">
<meta name="author" content="Rene Rivera"> <meta name="author" content="Rene Rivera">
<title>Boost.Predef</title> <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"> <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">
@ -48,7 +48,7 @@ textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0} table{border-collapse:collapse;border-spacing:0}
*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} *,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%} 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} 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;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer} a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto} img,object,embed{max-width:100%;height:auto}
object,embed{height:100%} object,embed{height:100%}
@ -63,10 +63,8 @@ img{-ms-interpolation-mode:bicubic}
img,object,svg{display:inline-block;vertical-align:middle} img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px} textarea{height:auto;min-height:50px}
select{width:100%} 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} .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} 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}
a{color:#2156a5;text-decoration:underline;line-height:inherit} a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f} a:hover,a:focus{color:#1d4b8f}
a img{border:0} a img{border:0}
@ -106,19 +104,22 @@ h1{font-size:2.75em}
h2{font-size:2.3125em} h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em} h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}} h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede} table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede;word-wrap:normal}
table thead,table tfoot{background:#f7f8f7} 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 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 th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt{background:#f8f8f7} table tr.even,table tr.alt{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} table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em} 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} h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.center{margin-left:auto;margin-right:auto}
.stretch{width:100%}
.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table} .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
.clearfix::after,.float-group::after{clear:both} .clearfix::after,.float-group::after{clear:both}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word} :not(pre).nobreak{word-wrap:normal}
:not(pre)>code.nobreak{word-wrap:normal} :not(pre).nowrap{white-space:nowrap}
:not(pre)>code.nowrap{white-space:nowrap} :not(pre).pre-wrap{white-space:pre-wrap}
:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed} pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit} pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
pre>code{display:block} pre>code{display:block}
@ -183,7 +184,7 @@ 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{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>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0} #content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em} #footer{max-width:none;background:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44} #footer-text{color:rgba(255,255,255,.8);line-height:1.44}
#content{margin-bottom:.625em} #content{margin-bottom:.625em}
.sect1{padding-bottom:.625em} .sect1{padding-bottom:.625em}
@ -206,7 +207,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font
.admonitionblock>table td.icon{text-align:center;width:80px} .admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:none} .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.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{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6);word-wrap:anywhere}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0} .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{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>:first-child{margin-top:0}
@ -216,7 +217,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font
.sidebarblock>:last-child{margin-bottom:0} .sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center} .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} .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>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em} .literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;overflow-x:auto;padding:1em;font-size:.8125em}
@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}} @media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}} @media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8} .literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
@ -262,21 +263,20 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em}
.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0} .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem} .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} .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} p.tableblock:last-child{margin-bottom:0}
td.tableblock>.content{margin-bottom:1.25em;word-wrap:anywhere}
td.tableblock>.content>:last-child{margin-bottom:-1.25em} td.tableblock>.content>:last-child{margin-bottom:-1.25em}
td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede} 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>*>tr>*{border-width:1px}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0} table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0} table.grid-rows>*>tr>*{border-width:1px 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-all{border-width:1px}
table.frame-ends{border-width:1px 0}
table.frame-sides{border-width:0 1px} table.frame-sides{border-width:0 1px}
table.frame-topbot,table.frame-ends{border-width:1px 0} table.frame-none>colgroup+*>:first-child>*,table.frame-sides>colgroup+*>:first-child>*{border-top-width:0}
table.frame-none>:last-child>:last-child>*,table.frame-sides>:last-child>:last-child>*{border-bottom-width:0}
table.frame-none>*>tr>:first-child,table.frame-ends>*>tr>:first-child{border-left-width:0}
table.frame-none>*>tr>:last-child,table.frame-ends>*>tr>:last-child{border-right-width:0}
table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7} table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
th.halign-left,td.halign-left{text-align:left} th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right} th.halign-right,td.halign-right{text-align:right}
@ -285,7 +285,7 @@ th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom} th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle} th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold} table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7} tbody tr th{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} 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>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em} p.tableblock{font-size:1em}
@ -314,6 +314,7 @@ ol.lowergreek{list-style-type:lower-greek}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none} .hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em} td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em} td.hdlist1{font-weight:bold;padding-bottom:1.25em}
td.hdlist2{word-wrap:anywhere}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em} .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{padding:.4em .75em 0;line-height:1;vertical-align:top}
.colist td:not([class]):first-child img{max-width:none} .colist td:not([class]):first-child img{max-width:none}
@ -386,7 +387,7 @@ a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900} .admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400} .admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000} .admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background: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]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:50%;border-radius:50%;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] *{color:#fff!important}
.conum[data-value]+b{display:none} .conum[data-value]+b{display:none}
.conum[data-value]::after{content:attr(data-value)} .conum[data-value]::after{content:attr(data-value)}
@ -413,6 +414,7 @@ thead{display:table-header-group}
svg{max-width:100%} svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3} p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid} h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important} #toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important} #toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
body.book #header{text-align:center} body.book #header{text-align:center}
@ -436,6 +438,77 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
#footer-text{color:rgba(0,0,0,.6);font-size:.9em}} #footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</style> </style>
<style>
pre.pygments .hll { background-color: #ffffcc }
pre.pygments { background: #f8f8f8; }
pre.pygments .tok-c { color: #408080; font-style: italic } /* Comment */
pre.pygments .tok-err { border: 1px solid #FF0000 } /* Error */
pre.pygments .tok-k { color: #008000; font-weight: bold } /* Keyword */
pre.pygments .tok-o { color: #666666 } /* Operator */
pre.pygments .tok-ch { color: #408080; font-style: italic } /* Comment.Hashbang */
pre.pygments .tok-cm { color: #408080; font-style: italic } /* Comment.Multiline */
pre.pygments .tok-cp { color: #BC7A00 } /* Comment.Preproc */
pre.pygments .tok-cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
pre.pygments .tok-c1 { color: #408080; font-style: italic } /* Comment.Single */
pre.pygments .tok-cs { color: #408080; font-style: italic } /* Comment.Special */
pre.pygments .tok-gd { color: #A00000 } /* Generic.Deleted */
pre.pygments .tok-ge { font-style: italic } /* Generic.Emph */
pre.pygments .tok-gr { color: #FF0000 } /* Generic.Error */
pre.pygments .tok-gh { color: #000080; font-weight: bold } /* Generic.Heading */
pre.pygments .tok-gi { color: #00A000 } /* Generic.Inserted */
pre.pygments .tok-go { color: #888888 } /* Generic.Output */
pre.pygments .tok-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
pre.pygments .tok-gs { font-weight: bold } /* Generic.Strong */
pre.pygments .tok-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
pre.pygments .tok-gt { color: #0044DD } /* Generic.Traceback */
pre.pygments .tok-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
pre.pygments .tok-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
pre.pygments .tok-kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
pre.pygments .tok-kp { color: #008000 } /* Keyword.Pseudo */
pre.pygments .tok-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
pre.pygments .tok-kt { color: #B00040 } /* Keyword.Type */
pre.pygments .tok-m { color: #666666 } /* Literal.Number */
pre.pygments .tok-s { color: #BA2121 } /* Literal.String */
pre.pygments .tok-na { color: #7D9029 } /* Name.Attribute */
pre.pygments .tok-nb { color: #008000 } /* Name.Builtin */
pre.pygments .tok-nc { color: #0000FF; font-weight: bold } /* Name.Class */
pre.pygments .tok-no { color: #880000 } /* Name.Constant */
pre.pygments .tok-nd { color: #AA22FF } /* Name.Decorator */
pre.pygments .tok-ni { color: #999999; font-weight: bold } /* Name.Entity */
pre.pygments .tok-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
pre.pygments .tok-nf { color: #0000FF } /* Name.Function */
pre.pygments .tok-nl { color: #A0A000 } /* Name.Label */
pre.pygments .tok-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
pre.pygments .tok-nt { color: #008000; font-weight: bold } /* Name.Tag */
pre.pygments .tok-nv { color: #19177C } /* Name.Variable */
pre.pygments .tok-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
pre.pygments .tok-w { color: #bbbbbb } /* Text.Whitespace */
pre.pygments .tok-mb { color: #666666 } /* Literal.Number.Bin */
pre.pygments .tok-mf { color: #666666 } /* Literal.Number.Float */
pre.pygments .tok-mh { color: #666666 } /* Literal.Number.Hex */
pre.pygments .tok-mi { color: #666666 } /* Literal.Number.Integer */
pre.pygments .tok-mo { color: #666666 } /* Literal.Number.Oct */
pre.pygments .tok-sa { color: #BA2121 } /* Literal.String.Affix */
pre.pygments .tok-sb { color: #BA2121 } /* Literal.String.Backtick */
pre.pygments .tok-sc { color: #BA2121 } /* Literal.String.Char */
pre.pygments .tok-dl { color: #BA2121 } /* Literal.String.Delimiter */
pre.pygments .tok-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
pre.pygments .tok-s2 { color: #BA2121 } /* Literal.String.Double */
pre.pygments .tok-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
pre.pygments .tok-sh { color: #BA2121 } /* Literal.String.Heredoc */
pre.pygments .tok-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
pre.pygments .tok-sx { color: #008000 } /* Literal.String.Other */
pre.pygments .tok-sr { color: #BB6688 } /* Literal.String.Regex */
pre.pygments .tok-s1 { color: #BA2121 } /* Literal.String.Single */
pre.pygments .tok-ss { color: #19177C } /* Literal.String.Symbol */
pre.pygments .tok-bp { color: #008000 } /* Name.Builtin.Pseudo */
pre.pygments .tok-fm { color: #0000FF } /* Name.Function.Magic */
pre.pygments .tok-vc { color: #19177C } /* Name.Variable.Class */
pre.pygments .tok-vg { color: #19177C } /* Name.Variable.Global */
pre.pygments .tok-vi { color: #19177C } /* Name.Variable.Instance */
pre.pygments .tok-vm { color: #19177C } /* Name.Variable.Magic */
pre.pygments .tok-il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
</head> </head>
<body class="article toc2 toc-left"> <body class="article toc2 toc-left">
<div id="header"> <div id="header">
@ -620,8 +693,9 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<li><a href="#_other_macros">4.8. Other macros</a> <li><a href="#_other_macros">4.8. Other macros</a>
<ul class="sectlevel3"> <ul class="sectlevel3">
<li><a href="#_boost_endian">4.8.1. <code>BOOST_ENDIAN_*</code></a></li> <li><a href="#_boost_endian">4.8.1. <code>BOOST_ENDIAN_*</code></a></li>
<li><a href="#_boost_predef_workaround">4.8.2. <code>BOOST_PREDEF_WORKAROUND</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_tested_at">4.8.3. <code>BOOST_PREDEF_TESTED_AT</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> </ul>
</li> </li>
<li><a href="#_version_definition_macros">4.9. Version definition macros</a> <li><a href="#_version_definition_macros">4.9. Version definition macros</a>
@ -641,18 +715,19 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li> </li>
<li><a href="#_history">6. History</a> <li><a href="#_history">6. History</a>
<ul class="sectlevel2"> <ul class="sectlevel2">
<li><a href="#_1_11">6.1. 1.11</a></li> <li><a href="#_1_12">6.1. 1.12</a></li>
<li><a href="#_1_10">6.2. 1.10</a></li> <li><a href="#_1_11">6.2. 1.11</a></li>
<li><a href="#_1_9">6.3. 1.9</a></li> <li><a href="#_1_10">6.3. 1.10</a></li>
<li><a href="#_1_8">6.4. 1.8</a></li> <li><a href="#_1_9">6.4. 1.9</a></li>
<li><a href="#_1_7">6.5. 1.7</a></li> <li><a href="#_1_8">6.5. 1.8</a></li>
<li><a href="#_1_6">6.6. 1.6</a></li> <li><a href="#_1_7">6.6. 1.7</a></li>
<li><a href="#_1_5">6.7. 1.5</a></li> <li><a href="#_1_6">6.7. 1.6</a></li>
<li><a href="#_1_4_1">6.8. 1.4.1</a></li> <li><a href="#_1_5">6.8. 1.5</a></li>
<li><a href="#_1_4">6.9. 1.4</a></li> <li><a href="#_1_4_1">6.9. 1.4.1</a></li>
<li><a href="#_1_3">6.10. 1.3</a></li> <li><a href="#_1_4">6.10. 1.4</a></li>
<li><a href="#_1_2">6.11. 1.2</a></li> <li><a href="#_1_3">6.11. 1.3</a></li>
<li><a href="#_1_1">6.12. 1.1</a></li> <li><a href="#_1_2">6.12. 1.2</a></li>
<li><a href="#_1_1">6.13. 1.1</a></li>
</ul> </ul>
</li> </li>
<li><a href="#_to_do">7. To Do</a></li> <li><a href="#_to_do">7. To Do</a></li>
@ -5536,7 +5611,7 @@ for Windows System development.</p>
<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> <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"> <div class="paragraph">
<p><a href="http://docs.microsoft.com/windows/uwp/">Universal Windows Platform</a> <p><a href="http://docs.microsoft.com/windows/uwp/">Universal Windows Platform</a>
is available if the current development environment is capable of targeting is available if the current development environment is capable of targeting
UWP development.</p> UWP development.</p>
</div> </div>
<table class="tableblock frame-all grid-all stretch"> <table class="tableblock frame-all grid-all stretch">
@ -6316,7 +6391,43 @@ information and acquired knowledge:</p>
</div> </div>
</div> </div>
<div class="sect3"> <div class="sect3">
<h4 id="_boost_predef_workaround"><a class="anchor" href="#_boost_predef_workaround"></a>4.8.2. <code>BOOST_PREDEF_WORKAROUND</code></h4> <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="listingblock">
<div class="content"> <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> <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>
@ -6342,7 +6453,7 @@ is undefine this expand to test the given <code>symbol</code> version value with
</div> </div>
</div> </div>
<div class="sect3"> <div class="sect3">
<h4 id="_boost_predef_tested_at"><a class="anchor" href="#_boost_predef_tested_at"></a>4.8.3. <code>BOOST_PREDEF_TESTED_AT</code></h4> <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="listingblock">
<div class="content"> <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> <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>
@ -6494,6 +6605,9 @@ indicates an ignored digit.</p>
<p><code>BOOST_PREDEF_MAKE_10_VPPP(V)</code></p> <p><code>BOOST_PREDEF_MAKE_10_VPPP(V)</code></p>
</li> </li>
<li> <li>
<p><code>BOOST_PREDEF_MAKE_10_VVPPP(V)</code></p>
</li>
<li>
<p><code>BOOST_PREDEF_MAKE_10_VR0(V)</code></p> <p><code>BOOST_PREDEF_MAKE_10_VR0(V)</code></p>
</li> </li>
<li> <li>
@ -6725,7 +6839,36 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
<h2 id="_history"><a class="anchor" href="#_history"></a>6. History</h2> <h2 id="_history"><a class="anchor" href="#_history"></a>6. History</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="sect2"> <div class="sect2">
<h3 id="_1_11"><a class="anchor" href="#_1_11"></a>6.1. 1.11</h3> <h3 id="_1_12"><a class="anchor" href="#_1_12"></a>6.1. 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.2. 1.11</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6753,7 +6896,7 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_10"><a class="anchor" href="#_1_10"></a>6.2. 1.10</h3> <h3 id="_1_10"><a class="anchor" href="#_1_10"></a>6.3. 1.10</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6778,7 +6921,7 @@ removed in a future release.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_9"><a class="anchor" href="#_1_9"></a>6.3. 1.9</h3> <h3 id="_1_9"><a class="anchor" href="#_1_9"></a>6.4. 1.9</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6791,7 +6934,7 @@ removed in a future release.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_8"><a class="anchor" href="#_1_8"></a>6.4. 1.8</h3> <h3 id="_1_8"><a class="anchor" href="#_1_8"></a>6.5. 1.8</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6813,7 +6956,7 @@ removed in a future release.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_7"><a class="anchor" href="#_1_7"></a>6.5. 1.7</h3> <h3 id="_1_7"><a class="anchor" href="#_1_7"></a>6.6. 1.7</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6829,7 +6972,7 @@ removed in a future release.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_6"><a class="anchor" href="#_1_6"></a>6.6. 1.6</h3> <h3 id="_1_6"><a class="anchor" href="#_1_6"></a>6.7. 1.6</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6853,7 +6996,7 @@ Baratov)</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_5"><a class="anchor" href="#_1_5"></a>6.7. 1.5</h3> <h3 id="_1_5"><a class="anchor" href="#_1_5"></a>6.8. 1.5</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6872,7 +7015,7 @@ version instead of the varied product versions.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_4_1"><a class="anchor" href="#_1_4_1"></a>6.8. 1.4.1</h3> <h3 id="_1_4_1"><a class="anchor" href="#_1_4_1"></a>6.9. 1.4.1</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6885,7 +7028,7 @@ version instead of the varied product versions.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_4"><a class="anchor" href="#_1_4"></a>6.9. 1.4</h3> <h3 id="_1_4"><a class="anchor" href="#_1_4"></a>6.10. 1.4</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6906,7 +7049,7 @@ use cases. And changed the BBv2 check support to use compile only checks.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_3"><a class="anchor" href="#_1_3"></a>6.10. 1.3</h3> <h3 id="_1_3"><a class="anchor" href="#_1_3"></a>6.11. 1.3</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6931,7 +7074,7 @@ use cases. And changed the BBv2 check support to use compile only checks.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_2"><a class="anchor" href="#_1_2"></a>6.11. 1.2</h3> <h3 id="_1_2"><a class="anchor" href="#_1_2"></a>6.12. 1.2</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -6955,7 +7098,7 @@ checks.</p>
</div> </div>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_1_1"><a class="anchor" href="#_1_1"></a>6.12. 1.1</h3> <h3 id="_1_1"><a class="anchor" href="#_1_1"></a>6.13. 1.1</h3>
<div class="ulist"> <div class="ulist">
<ul> <ul>
<li> <li>
@ -7051,76 +7194,5 @@ Joel Falcou for managing the review of this library.</p>
</div> </div>
</div> </div>
</div> </div>
<style>
pre.pygments .hll { background-color: #ffffcc }
pre.pygments { background: #f8f8f8; }
pre.pygments .tok-c { color: #408080; font-style: italic } /* Comment */
pre.pygments .tok-err { border: 1px solid #FF0000 } /* Error */
pre.pygments .tok-k { color: #008000; font-weight: bold } /* Keyword */
pre.pygments .tok-o { color: #666666 } /* Operator */
pre.pygments .tok-ch { color: #408080; font-style: italic } /* Comment.Hashbang */
pre.pygments .tok-cm { color: #408080; font-style: italic } /* Comment.Multiline */
pre.pygments .tok-cp { color: #BC7A00 } /* Comment.Preproc */
pre.pygments .tok-cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
pre.pygments .tok-c1 { color: #408080; font-style: italic } /* Comment.Single */
pre.pygments .tok-cs { color: #408080; font-style: italic } /* Comment.Special */
pre.pygments .tok-gd { color: #A00000 } /* Generic.Deleted */
pre.pygments .tok-ge { font-style: italic } /* Generic.Emph */
pre.pygments .tok-gr { color: #FF0000 } /* Generic.Error */
pre.pygments .tok-gh { color: #000080; font-weight: bold } /* Generic.Heading */
pre.pygments .tok-gi { color: #00A000 } /* Generic.Inserted */
pre.pygments .tok-go { color: #888888 } /* Generic.Output */
pre.pygments .tok-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
pre.pygments .tok-gs { font-weight: bold } /* Generic.Strong */
pre.pygments .tok-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
pre.pygments .tok-gt { color: #0044DD } /* Generic.Traceback */
pre.pygments .tok-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
pre.pygments .tok-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
pre.pygments .tok-kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
pre.pygments .tok-kp { color: #008000 } /* Keyword.Pseudo */
pre.pygments .tok-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
pre.pygments .tok-kt { color: #B00040 } /* Keyword.Type */
pre.pygments .tok-m { color: #666666 } /* Literal.Number */
pre.pygments .tok-s { color: #BA2121 } /* Literal.String */
pre.pygments .tok-na { color: #7D9029 } /* Name.Attribute */
pre.pygments .tok-nb { color: #008000 } /* Name.Builtin */
pre.pygments .tok-nc { color: #0000FF; font-weight: bold } /* Name.Class */
pre.pygments .tok-no { color: #880000 } /* Name.Constant */
pre.pygments .tok-nd { color: #AA22FF } /* Name.Decorator */
pre.pygments .tok-ni { color: #999999; font-weight: bold } /* Name.Entity */
pre.pygments .tok-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
pre.pygments .tok-nf { color: #0000FF } /* Name.Function */
pre.pygments .tok-nl { color: #A0A000 } /* Name.Label */
pre.pygments .tok-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
pre.pygments .tok-nt { color: #008000; font-weight: bold } /* Name.Tag */
pre.pygments .tok-nv { color: #19177C } /* Name.Variable */
pre.pygments .tok-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
pre.pygments .tok-w { color: #bbbbbb } /* Text.Whitespace */
pre.pygments .tok-mb { color: #666666 } /* Literal.Number.Bin */
pre.pygments .tok-mf { color: #666666 } /* Literal.Number.Float */
pre.pygments .tok-mh { color: #666666 } /* Literal.Number.Hex */
pre.pygments .tok-mi { color: #666666 } /* Literal.Number.Integer */
pre.pygments .tok-mo { color: #666666 } /* Literal.Number.Oct */
pre.pygments .tok-sa { color: #BA2121 } /* Literal.String.Affix */
pre.pygments .tok-sb { color: #BA2121 } /* Literal.String.Backtick */
pre.pygments .tok-sc { color: #BA2121 } /* Literal.String.Char */
pre.pygments .tok-dl { color: #BA2121 } /* Literal.String.Delimiter */
pre.pygments .tok-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
pre.pygments .tok-s2 { color: #BA2121 } /* Literal.String.Double */
pre.pygments .tok-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
pre.pygments .tok-sh { color: #BA2121 } /* Literal.String.Heredoc */
pre.pygments .tok-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
pre.pygments .tok-sx { color: #008000 } /* Literal.String.Other */
pre.pygments .tok-sr { color: #BB6688 } /* Literal.String.Regex */
pre.pygments .tok-s1 { color: #BA2121 } /* Literal.String.Single */
pre.pygments .tok-ss { color: #19177C } /* Literal.String.Symbol */
pre.pygments .tok-bp { color: #008000 } /* Name.Builtin.Pseudo */
pre.pygments .tok-fm { color: #0000FF } /* Name.Function.Magic */
pre.pygments .tok-vc { color: #19177C } /* Name.Variable.Class */
pre.pygments .tok-vg { color: #19177C } /* Name.Variable.Global */
pre.pygments .tok-vi { color: #19177C } /* Name.Variable.Instance */
pre.pygments .tok-vm { color: #19177C } /* Name.Variable.Magic */
pre.pygments .tok-il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
</body> </body>
</html> </html>

View File

@ -828,6 +828,8 @@ include::../include/boost/predef/hardware/simd/x86_amd/versions.h[tag=reference]
include::../include/boost/predef/other/endian.h[tag=reference] include::../include/boost/predef/other/endian.h[tag=reference]
include::../include/boost/predef/other/wordsize.h[tag=reference]
include::../include/boost/predef/other/workaround.h[tag=reference] include::../include/boost/predef/other/workaround.h[tag=reference]
:leveloffset: -3 :leveloffset: -3

View File

@ -29,6 +29,5 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/architecture/sys390.h> #include <boost/predef/architecture/sys390.h>
#include <boost/predef/architecture/x86.h> #include <boost/predef/architecture/x86.h>
#include <boost/predef/architecture/z.h> #include <boost/predef/architecture/z.h>
/*#include <boost/predef/architecture/.h>*/
#endif #endif

View File

@ -52,6 +52,11 @@ http://en.wikipedia.org/wiki/DEC_Alpha[DEC Alpha] architecture.
# define BOOST_ARCH_ALPHA_AVAILABLE # define BOOST_ARCH_ALPHA_AVAILABLE
#endif #endif
#if BOOST_ARCH_ALPHA
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_ALPHA_NAME "DEC Alpha" #define BOOST_ARCH_ALPHA_NAME "DEC Alpha"
#endif #endif

View File

@ -126,6 +126,16 @@ http://en.wikipedia.org/wiki/ARM_architecture[ARM] architecture.
# define BOOST_ARCH_ARM_AVAILABLE # define BOOST_ARCH_ARM_AVAILABLE
#endif #endif
#if BOOST_ARCH_ARM
# if BOOST_ARCH_ARM >= BOOST_VERSION_NUMBER(8,0,0)
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
# else
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#define BOOST_ARCH_ARM_NAME "ARM" #define BOOST_ARCH_ARM_NAME "ARM"
#endif #endif

View File

@ -39,6 +39,11 @@ Blackfin Processors from Analog Devices.
# define BOOST_ARCH_BLACKFIN_AVAILABLE # define BOOST_ARCH_BLACKFIN_AVAILABLE
#endif #endif
#if BOOST_ARCH_BLACKFIN
# undef BOOST_ARCH_WORD_BITS_16
# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_BLACKFIN_NAME "Blackfin" #define BOOST_ARCH_BLACKFIN_NAME "Blackfin"
#endif #endif

View File

@ -58,6 +58,11 @@ http://en.wikipedia.org/wiki/Convex_Computer[Convex Computer] architecture.
# define BOOST_ARCH_CONVEX_AVAILABLE # define BOOST_ARCH_CONVEX_AVAILABLE
#endif #endif
#if BOOST_ARCH_CONVEX
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_CONVEX_NAME "Convex Computer" #define BOOST_ARCH_CONVEX_NAME "Convex Computer"
#endif #endif

View File

@ -42,6 +42,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel Itanium 64] architecture.
# define BOOST_ARCH_IA64_AVAILABLE # define BOOST_ARCH_IA64_AVAILABLE
#endif #endif
#if BOOST_ARCH_IA64
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_IA64_NAME "Intel Itanium 64" #define BOOST_ARCH_IA64_NAME "Intel Itanium 64"
#endif #endif

View File

@ -75,6 +75,11 @@ http://en.wikipedia.org/wiki/M68k[Motorola 68k] architecture.
# define BOOST_ARCH_M68K_AVAILABLE # define BOOST_ARCH_M68K_AVAILABLE
#endif #endif
#if BOOST_ARCH_M68K
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_M68K_NAME "Motorola 68k" #define BOOST_ARCH_M68K_NAME "Motorola 68k"
#endif #endif

View File

@ -66,6 +66,16 @@ http://en.wikipedia.org/wiki/MIPS_architecture[MIPS] architecture.
# define BOOST_ARCH_MIPS_AVAILABLE # define BOOST_ARCH_MIPS_AVAILABLE
#endif #endif
#if BOOST_ARCH_MIPS
# if BOOST_ARCH_MIPS >= BOOST_VERSION_NUMBER(3,0,0)
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
# else
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#define BOOST_ARCH_MIPS_NAME "MIPS" #define BOOST_ARCH_MIPS_NAME "MIPS"
#endif #endif

View File

@ -57,6 +57,11 @@ http://en.wikipedia.org/wiki/PA-RISC_family[HP/PA RISC] architecture.
# define BOOST_ARCH_PARISC_AVAILABLE # define BOOST_ARCH_PARISC_AVAILABLE
#endif #endif
#if BOOST_ARCH_PARISC
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_PARISC_NAME "HP/PA RISC" #define BOOST_ARCH_PARISC_NAME "HP/PA RISC"
#endif #endif

View File

@ -65,6 +65,11 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
# define BOOST_ARCH_PPC_AVAILABLE # define BOOST_ARCH_PPC_AVAILABLE
#endif #endif
#if BOOST_ARCH_PPC
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_PPC_NAME "PowerPC" #define BOOST_ARCH_PPC_NAME "PowerPC"
#endif #endif

View File

@ -37,6 +37,11 @@ https://en.wikipedia.org/wiki/Parallel_Thread_Execution[PTX] architecture.
# define BOOST_ARCH_PTX_AVAILABLE # define BOOST_ARCH_PTX_AVAILABLE
#endif #endif
#if BOOST_ARCH_PTX
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_PTX_NAME "PTX" #define BOOST_ARCH_PTX_NAME "PTX"
#endif #endif

View File

@ -35,6 +35,11 @@ Pyramid 9810 architecture.
# define BOOST_ARCH_PYRAMID_AVAILABLE # define BOOST_ARCH_PYRAMID_AVAILABLE
#endif #endif
#if BOOST_ARCH_PYRAMID
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810" #define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810"
#endif #endif

View File

@ -35,6 +35,11 @@ http://en.wikipedia.org/wiki/RISC-V[RISC-V] architecture.
# define BOOST_ARCH_RISCV_AVAILABLE # define BOOST_ARCH_RISCV_AVAILABLE
#endif #endif
#if BOOST_ARCH_RISCV
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_RISCV_NAME "RISC-V" #define BOOST_ARCH_RISCV_NAME "RISC-V"
#endif #endif

View File

@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
# define BOOST_ARCH_RS6000_AVAILABLE # define BOOST_ARCH_RS6000_AVAILABLE
#endif #endif
#if BOOST_ARCH_RS6000
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_RS6000_NAME "RS/6000" #define BOOST_ARCH_RS6000_NAME "RS/6000"
#define BOOST_ARCH_PWR BOOST_ARCH_RS6000 #define BOOST_ARCH_PWR BOOST_ARCH_RS6000
@ -49,6 +54,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
# define BOOST_ARCH_PWR_AVAILABLE # define BOOST_ARCH_PWR_AVAILABLE
#endif #endif
#if BOOST_ARCH_PWR
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME #define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME
#endif #endif

View File

@ -47,6 +47,16 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
# define BOOST_ARCH_SPARC_AVAILABLE # define BOOST_ARCH_SPARC_AVAILABLE
#endif #endif
#if BOOST_ARCH_SPARC
# if BOOST_ARCH_SPARC >= BOOST_VERSION_NUMBER(9,0,0)
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
# else
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#define BOOST_ARCH_SPARC_NAME "SPARC" #define BOOST_ARCH_SPARC_NAME "SPARC"
#endif #endif

View File

@ -60,6 +60,19 @@ If available versions [1-5] are specifically detected.
# define BOOST_ARCH_SH_AVAILABLE # define BOOST_ARCH_SH_AVAILABLE
#endif #endif
#if BOOST_ARCH_SH
# if BOOST_ARCH_SH >= BOOST_VERSION_NUMBER(5,0,0)
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
# elif BOOST_ARCH_SH >= BOOST_VERSION_NUMBER(3,0,0)
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
# else
# undef BOOST_ARCH_WORD_BITS_16
# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#define BOOST_ARCH_SH_NAME "SuperH" #define BOOST_ARCH_SH_NAME "SuperH"
#endif #endif

View File

@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/370[System/370] architecture.
# define BOOST_ARCH_SYS370_AVAILABLE # define BOOST_ARCH_SYS370_AVAILABLE
#endif #endif
#if BOOST_ARCH_SYS370
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_SYS370_NAME "System/370" #define BOOST_ARCH_SYS370_NAME "System/370"
#endif #endif

View File

@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/390[System/390] architecture.
# define BOOST_ARCH_SYS390_AVAILABLE # define BOOST_ARCH_SYS390_AVAILABLE
#endif #endif
#if BOOST_ARCH_SYS390
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_SYS390_NAME "System/390" #define BOOST_ARCH_SYS390_NAME "System/390"
#endif #endif

View File

@ -78,6 +78,11 @@ If available versions [3-6] are specifically detected.
# define BOOST_ARCH_X86_32_AVAILABLE # define BOOST_ARCH_X86_32_AVAILABLE
#endif #endif
#if BOOST_ARCH_X86_32
# undef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_X86_32_NAME "Intel x86-32" #define BOOST_ARCH_X86_32_NAME "Intel x86-32"
#include <boost/predef/architecture/x86.h> #include <boost/predef/architecture/x86.h>

View File

@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel IA-64] architecture.
# define BOOST_ARCH_X86_64_AVAILABLE # define BOOST_ARCH_X86_64_AVAILABLE
#endif #endif
#if BOOST_ARCH_X86_64
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_X86_64_NAME "Intel x86-64" #define BOOST_ARCH_X86_64_NAME "Intel x86-64"
#include <boost/predef/architecture/x86.h> #include <boost/predef/architecture/x86.h>

View File

@ -35,6 +35,11 @@ http://en.wikipedia.org/wiki/Z/Architecture[z/Architecture] architecture.
# define BOOST_ARCH_Z_AVAILABLE # define BOOST_ARCH_Z_AVAILABLE
#endif #endif
#if BOOST_ARCH_Z
# undef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_Z_NAME "z/Architecture" #define BOOST_ARCH_Z_NAME "z/Architecture"
#endif #endif

View File

@ -32,7 +32,7 @@ http://libcxx.llvm.org/[libc++] {CPP} Standard Library.
#if defined(_LIBCPP_VERSION) #if defined(_LIBCPP_VERSION)
# undef BOOST_LIB_STD_CXX # undef BOOST_LIB_STD_CXX
# define BOOST_LIB_STD_CXX BOOST_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION) # define BOOST_LIB_STD_CXX BOOST_PREDEF_MAKE_10_VVPPP(_LIBCPP_VERSION)
#endif #endif
#if BOOST_LIB_STD_CXX #if BOOST_LIB_STD_CXX

View File

@ -66,6 +66,10 @@ Macros are:
*/ // end::reference[] */ // end::reference[]
#define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000) #define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
/* tag::reference[] /* tag::reference[]
* `BOOST_PREDEF_MAKE_10_VVPPP(V)`
*/ // end::reference[]
#define BOOST_PREDEF_MAKE_10_VVPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%100,0,(V)%1000)
/* tag::reference[]
* `BOOST_PREDEF_MAKE_10_VR0(V)` * `BOOST_PREDEF_MAKE_10_VR0(V)`
*/ // end::reference[] */ // end::reference[]
#define BOOST_PREDEF_MAKE_10_VR0(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,0) #define BOOST_PREDEF_MAKE_10_VR0(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,0)

View File

@ -29,6 +29,7 @@ http://en.wikipedia.org/wiki/BSD/OS[BSDi BSD/OS] operating system.
defined(__bsdi__) \ defined(__bsdi__) \
) )
# ifndef BOOST_OS_BSD_AVAILABLE # ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD_AVAILABLE
# endif # endif

View File

@ -29,6 +29,7 @@ http://en.wikipedia.org/wiki/DragonFly_BSD[DragonFly BSD] operating system.
defined(__DragonFly__) \ defined(__DragonFly__) \
) )
# ifndef BOOST_OS_BSD_AVAILABLE # ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD_AVAILABLE
# endif # endif

View File

@ -31,6 +31,7 @@ http://en.wikipedia.org/wiki/Freebsd[FreeBSD] operating system.
defined(__FreeBSD__) \ defined(__FreeBSD__) \
) )
# ifndef BOOST_OS_BSD_AVAILABLE # ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD_AVAILABLE
# endif # endif

View File

@ -36,6 +36,7 @@ http://en.wikipedia.org/wiki/Netbsd[NetBSD] operating system.
defined(__NETBSD__) || defined(__NetBSD__) \ defined(__NETBSD__) || defined(__NetBSD__) \
) )
# ifndef BOOST_OS_BSD_AVAILABLE # ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD_AVAILABLE
# endif # endif

View File

@ -80,6 +80,7 @@ http://en.wikipedia.org/wiki/Openbsd[OpenBSD] operating system.
defined(__OpenBSD__) \ defined(__OpenBSD__) \
) )
# ifndef BOOST_OS_BSD_AVAILABLE # ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE # define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE # define BOOST_OS_BSD_AVAILABLE
# endif # endif

View File

@ -1,5 +1,5 @@
/* /*
Copyright Rene Rivera 2013-2015 Copyright Rene Ferdinand Rivera Morell 2013-2020
Distributed under the Boost Software License, Version 1.0. Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt) http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif #endif
#include <boost/predef/other/endian.h> #include <boost/predef/other/endian.h>
/*#include <boost/predef/other/.h>*/ #include <boost/predef/other/wordsize.h>
#include <boost/predef/other/workaround.h>
#endif #endif

View File

@ -54,18 +54,14 @@ information and acquired knowledge:
*/ */
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
# if BOOST_LIB_C_GNU || BOOST_PLAT_ANDROID # if BOOST_LIB_C_GNU || BOOST_PLAT_ANDROID || BOOST_OS_BSD_OPEN
# include <endian.h> # include <endian.h>
# else # else
# if BOOST_OS_MACOS # if BOOST_OS_MACOS
# include <machine/endian.h> # include <machine/endian.h>
# else # else
# if BOOST_OS_BSD # if BOOST_OS_BSD
# if BOOST_OS_BSD_OPEN # include <sys/endian.h>
# include <machine/endian.h>
# else
# include <sys/endian.h>
# endif
# endif # endif
# endif # endif
# endif # endif
@ -99,7 +95,7 @@ information and acquired knowledge:
# endif # endif
#endif #endif
/* Built-in byte-swpped big-endian macros. /* Built-in byte-swapped big-endian macros.
*/ */
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
@ -116,7 +112,7 @@ information and acquired knowledge:
# endif # endif
#endif #endif
/* Built-in byte-swpped little-endian macros. /* Built-in byte-swapped little-endian macros.
*/ */
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
@ -158,7 +154,7 @@ information and acquired knowledge:
#endif #endif
/* Windows on ARM, if not otherwise detected/specified, is always /* Windows on ARM, if not otherwise detected/specified, is always
* byte-swaped little-endian. * byte-swapped little-endian.
*/ */
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \ #if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD

View File

@ -0,0 +1,69 @@
/*
Copyright Rene Ferdinand Rivera Morell 2020
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_OTHER_WORD_SIZE_H
#define BOOST_PREDEF_OTHER_WORD_SIZE_H
#include <boost/predef/architecture.h>
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_ARCH_WORD_BITS`
Detects the native word size, in bits, for the current architecture. There are
two types of macros for this detection:
* `BOOST_ARCH_WORD_BITS`, gives the number of word size bits
(16, 32, 64).
* `BOOST_ARCH_WORD_BITS_16`, `BOOST_ARCH_WORD_BITS_32`, and
`BOOST_ARCH_WORD_BITS_64`, indicate when the given word size is
detected.
They allow for both single checks and direct use of the size in code.
NOTE: The word size is determined manually on each architecture. Hence use of
the `wordsize.h` header will also include all the architecture headers.
*/ // end::reference[]
#ifndef BOOST_ARCH_WORD_BITS_16
# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#else
# define BOOST_ARCH_WORD_BITS 16
#endif
#ifndef BOOST_ARCH_WORD_BITS_32
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#else
# define BOOST_ARCH_WORD_BITS 32
#endif
#ifndef BOOST_ARCH_WORD_BITS_64
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#else
# define BOOST_ARCH_WORD_BITS 64
#endif
#ifndef BOOST_ARCH_WORD_BITS
# define BOOST_ARCH_WORD_BITS 0
#endif
#define BOOST_ARCH_WORD_BITS_16_NAME "16-bit Word Size"
#define BOOST_ARCH_WORD_BITS_32_NAME "32-bit Word Size"
#define BOOST_ARCH_WORD_BITS_64_NAME "64-bit Word Size"
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_16,BOOST_ARCH_WORD_BITS_16_NAME)
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_32,BOOST_ARCH_WORD_BITS_32_NAME)
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_WORD_BITS_64,BOOST_ARCH_WORD_BITS_64_NAME)

View File

@ -24,6 +24,5 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/platform/windows_system.h> #include <boost/predef/platform/windows_system.h>
#include <boost/predef/platform/windows_runtime.h> // deprecated #include <boost/predef/platform/windows_runtime.h> // deprecated
#include <boost/predef/platform/ios.h> #include <boost/predef/platform/ios.h>
/*#include <boost/predef/platform/.h>*/
#endif #endif

View File

@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h> #include <boost/predef/version_number.h>
#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,11,0) #define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,12,0)
#endif #endif

View File

@ -2,13 +2,14 @@
"key": "predef", "key": "predef",
"name": "Predef", "name": "Predef",
"authors": [ "authors": [
"Rene Rivera" "René Ferdinand Rivera Morell"
], ],
"description": "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.", "description": "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.",
"category": [ "category": [
"Miscellaneous" "Miscellaneous"
], ],
"maintainers": [ "maintainers": [
"Rene Rivera <grafikrobot -at- gmail.com>" "René Ferdinand Rivera Morell <grafikrobot -at- gmail.com>"
] ],
"cxxstd": "98"
} }

View File

@ -4,11 +4,13 @@
# http://www.boost.org/LICENSE_1_0.txt) # http://www.boost.org/LICENSE_1_0.txt)
import ../tools/check/predef : require check : predef-require predef-check ; import ../tools/check/predef : require check : predef-require predef-check ;
import common ;
import path ; import path ;
import regex ;
# This deals with the unfortunate aspect of a Boost monolithic release # This deals with the unfortunate aspect of a Boost monolithic release
# not having the modular include dirs. This is a kludge that just removes # not having the modular include dirs. This is a kludge that just removes
# the direct depdndency to the header if it can't find it. # the direct dependency to the header if it can't find it.
local PREDEF_H = $(BOOST_PREDEF_INCLUDE)/boost/predef.h ; local PREDEF_H = $(BOOST_PREDEF_INCLUDE)/boost/predef.h ;
if ! [ path.exists $(PREDEF_H) ] if ! [ path.exists $(PREDEF_H) ]
{ {
@ -25,11 +27,14 @@ project
using testing ; using testing ;
test-suite predef : test-suite predef-info :
[ run info_as_cpp.cpp : : : <test-info>always_show_run_output ] [ run info_as_cpp.cpp : : : <test-info>always_show_run_output ]
[ run info_as_c.c : : : <test-info>always_show_run_output ] [ run info_as_c.c : : : <test-info>always_show_run_output ]
[ run info_as_objcpp.mm : : : <test-info>always_show_run_output ] [ run info_as_objcpp.mm : : : <test-info>always_show_run_output ]
[ run info_as_objc.m : : : <test-info>always_show_run_output ] [ run info_as_objc.m : : : <test-info>always_show_run_output ]
;
test-suite predef :
[ run version.cpp ] [ run version.cpp ]
[ run make.cpp ] [ run make.cpp ]
[ compile macos_endian.c : [ predef-require "BOOST_OS_MACOS" : cpp ] ] [ compile macos_endian.c : [ predef-require "BOOST_OS_MACOS" : cpp ] ]
@ -43,15 +48,62 @@ test-suite predef :
[ compile platform_windows.cpp ] [ compile platform_windows.cpp ]
; ;
local HEADERS = [ path.glob
$(BOOST_PREDEF_INCLUDE)/predef
$(BOOST_PREDEF_INCLUDE)/predef/architecture
$(BOOST_PREDEF_INCLUDE)/predef/architecture/x86
$(BOOST_PREDEF_INCLUDE)/predef/compiler
$(BOOST_PREDEF_INCLUDE)/predef/hardware
$(BOOST_PREDEF_INCLUDE)/predef/hardware/simd
$(BOOST_PREDEF_INCLUDE)/predef/hardware/simd/arm
$(BOOST_PREDEF_INCLUDE)/predef/hardware/simd/ppc
$(BOOST_PREDEF_INCLUDE)/predef/hardware/simd/x86
$(BOOST_PREDEF_INCLUDE)/predef/hardware/simd/x86_amd
$(BOOST_PREDEF_INCLUDE)/predef/language
$(BOOST_PREDEF_INCLUDE)/predef/library
$(BOOST_PREDEF_INCLUDE)/predef/library/c
$(BOOST_PREDEF_INCLUDE)/predef/library/std
$(BOOST_PREDEF_INCLUDE)/predef/os
$(BOOST_PREDEF_INCLUDE)/predef/os/bsd
$(BOOST_PREDEF_INCLUDE)/predef/other
$(BOOST_PREDEF_INCLUDE)/predef/platform
: *.h
] ;
local single_header_cpp ;
for local h in $(HEADERS)
{
local header_include = [ path.relative $(h) [ path.make $(BOOST_PREDEF_INCLUDE) ] ] ;
local header_cpp = [ regex.replace $(header_include:S=.cpp) "/" "_" ] ;
.HEADER($(header_cpp:B:S=)) = $(header_include) ;
make $(header_cpp) : : @gen_single_header_cpp ;
explicit $(header_cpp) ;
compile $(header_cpp) : <warnings-as-errors>on <warnings>all : $(header_cpp:B:S=) ;
explicit $(header_cpp:B:S=) ;
single_header_cpp += $(header_cpp:B:S=) ;
}
test-suite predef-headers : $(single_header_cpp) ;
.file_touch_cmd = [ common.file-touch-command ] ;
rule gen_single_header_cpp ( target * : source * : properties * )
{
HEADER on $(target) = $(.HEADER($(target[1]:B))) ;
}
actions gen_single_header_cpp
{
$(.file_touch_cmd) @($(<):<=":>=":O=F:E=#include <$(HEADER)>)
}
# Minimal testing done for predef for CI. Since # Minimal testing done for predef for CI. Since
# we don't have many we can just do all of them. # we don't have many we can just do all of them.
alias minimal : predef ; alias minimal : predef predef-info ;
# Full testing target for regular regression tests. # Full testing target for regular regression tests.
alias full : predef ; alias full : predef predef-info ;
# Extra's target. Nothing for Predef. # Extra's target.
alias extra ; alias extra : predef-headers ;
explicit minimal ; explicit minimal ;
explicit extra ; explicit extra ;

30
tools/ci/linux-cxx-install.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
# Usage:
# LLVM_OS: LLVM OS release to obtain clang binaries. Only needed for clang install.
# LLVM_VER: The LLVM toolset version to point the repo at.
# PACKAGES: Compiler packages to install.
set -e
echo ">>>>>"
echo ">>>>> APT: REPO.."
echo ">>>>>"
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
if test -n "${LLVM_OS}" -a -n "${LLVM_VER}" ; then
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main"
fi
echo ">>>>>"
echo ">>>>> APT: UPDATE.."
echo ">>>>>"
sudo -E apt-get -o Acquire::Retries=3 update
echo ">>>>>"
echo ">>>>> APT: INSTALL ${PACKAGES}.."
echo ">>>>>"
sudo -E apt-get -o Acquire::Retries=3 -yq --no-install-suggests --no-install-recommends install ${PACKAGES}
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE.txt)
#
# Copyright Rene Rivera 2020.

38
tools/ci/macos-xcode-install.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/sh
# Usage:
# XCODE_VERSION = Dotted version of Xcode to install and make active.
# XCODE_INSTALL_USER = Account name for developer.apple.com without TFA.
# XCODE_INSTALL_PASSWORD = Password for that account.
set -e
sudo gem install xcode-install
xcversion update
echo ">>>>>"
echo ">>>>> AVAILABLE.."
echo ">>>>>"
xcversion list
echo ">>>>>"
echo ">>>>> INSTALLL: Xcode ${XCODE_VERSION}.."
echo ">>>>>"
xcversion --verbose --no-progress --no-clean --no-show-release-notes install ${XCODE_VERSION}
echo ""
echo ">>>>>"
echo ">>>>> INSTALL: CLI Tools.."
echo ">>>>>"
xcversion --verbose install-cli-tools
echo ""
echo ">>>>>"
echo ">>>>> AVAILABLE.."
echo ">>>>>"
xcversion list
echo ">>>>>"
echo ">>>>> SELECT: Xcode ${XCODE_VERSION}.."
echo ">>>>>"
xcversion select ${XCODE_VERSION} --symlink
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE.txt)
#
# Copyright Rene Rivera 2020.