Compare commits

...

17 Commits

Author SHA1 Message Date
e3a87328f4 Merge branch 'develop' 2021-02-13 20:33:00 -06:00
8ee83ef1aa Add notes for v1.13. 2021-02-13 12:16:24 -06:00
c9ee4eb329 Update from upstream Hash Predef. 2021-02-13 10:21:16 -06:00
cfbda6e0cc Bump to 1.13 2021-02-09 23:05:35 -06:00
d37f35e578 Add e2k arch to docs. 2021-02-09 23:00:54 -06:00
d3460e05aa Add support for Elbrus 2000 (e2k) architecture (#116) 2021-02-09 22:52:29 -06:00
f51e4ff45e Fix bad link to libstdc++. 2021-02-09 22:49:00 -06:00
40c6205858 Fix incorrect reference to IA-64 instead of X86-64. 2021-02-09 22:31:02 -06:00
c5075828dd Release 1.12 2021-01-06 08:01:05 -06:00
caa0627ab5 Add Appveyor Windows CI back in.
fixes https://github.com/boostorg/predef/issues/59
fixes https://github.com/boostorg/predef/issues/87
2021-01-05 22:19:58 -06:00
a7ac034985 Add WORD_BITS predef detection.
fixes https://github.com/boostorg/predef/pull/107
fixes https://github.com/boostorg/predef/pull/108
2021-01-05 09:40:19 -06:00
6bcceefb48 Do info and header tests for all platforms. 2021-01-04 16:43:23 -06:00
d990549214 Fix redef of OS_BSD predef.
When a BSD sub-os header is included directly the general
OS_BSD predef is inidially defined as not-available. Which
warns as the sub-os header defines it. The fix is to unconditionally
un-def the OS_BSD predef.

fixes https://github.com/boostorg/predef/issues/111
2021-01-04 14:37:33 -06:00
e697cafd12 Fix not handling stdcxx recent versions that go above 10.x.
Fixes #112
2021-01-03 22:52:27 -06:00
99cfb298de Switch to using the endian.h header on OpenBSD. (#110)
Switch to using the endian.h header on OpenBSD.
2021-01-02 20:49:42 -06:00
17cb5b78d5 Start of 1.12 changes. 2021-01-02 17:57:43 -06:00
095faae58d Update meta info with name and cxxstd. 2021-01-02 07:22:57 -06:00
43 changed files with 885 additions and 350 deletions

View File

@ -32,139 +32,44 @@ stages:
- job: 'Linux'
strategy:
matrix:
GCC 9 (GNU):
TOOLSET: gcc
CXX: g++-9
PACKAGES: g++-9
B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=gnu'
VM_IMAGE: 'ubuntu-18.04'
GCC 9 (ISO):
TOOLSET: gcc
CXX: g++-9
PACKAGES: g++-9
B2_ARGS: 'cxxstd=03,11,14,17,2a cxxstd-dialect=iso'
VM_IMAGE: 'ubuntu-18.04'
GCC 9:
TOOLSET: gcc
CXX: g++-9
PACKAGES: g++-9
VM_IMAGE: 'ubuntu-18.04'
GCC 8:
TOOLSET: gcc
CXX: g++-8
PACKAGES: g++-8
VM_IMAGE: 'ubuntu-18.04'
GCC 7:
TOOLSET: gcc
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'
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' }
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' }
GCC 10: { CXX: g++-10, PACKAGES: g++-10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 9: { CXX: g++-9, PACKAGES: g++-9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 8: { CXX: g++-8, PACKAGES: g++-8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 7: { CXX: g++-7, PACKAGES: g++-7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 6: { CXX: g++-6, PACKAGES: g++-6, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 5: { CXX: g++-5, PACKAGES: g++-5, VM_IMAGE: 'ubuntu-18.04', TOOLSET: gcc }
GCC 4.9: { CXX: g++-4.9, PACKAGES: g++-4.9, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
GCC 4.8: { CXX: g++-4.8, PACKAGES: g++-4.8, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
GCC 4.7: { CXX: g++-4.7, PACKAGES: g++-4.7, VM_IMAGE: 'ubuntu-16.04', TOOLSET: gcc }
Clang 11: { CXX: clang++-11, PACKAGES: clang-11, LLVM_OS: bionic, LLVM_VER: 11, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
Clang 10: { CXX: clang++-10, PACKAGES: clang-10, LLVM_OS: bionic, LLVM_VER: 10, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
Clang 9: { CXX: clang++-9, PACKAGES: clang-9, LLVM_OS: bionic, LLVM_VER: 9, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
Clang 8: { CXX: clang++-8, PACKAGES: clang-8, LLVM_OS: bionic, LLVM_VER: 8, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
Clang 7: { CXX: clang++-7, PACKAGES: clang-7, LLVM_OS: bionic, LLVM_VER: 7, VM_IMAGE: 'ubuntu-18.04', TOOLSET: clang }
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 }
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 }
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 }
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 }
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 }
Clang 3.7: { CXX: clang++-3.7, PACKAGES: clang-3.7, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
Clang 3.6: { CXX: clang++-3.6, PACKAGES: clang-3.6, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
Clang 3.5: { CXX: clang++-3.5, PACKAGES: clang-3.5, LLVM_OS: xenial, VM_IMAGE: 'ubuntu-16.04', TOOLSET: clang }
pool:
vmImage: $(VM_IMAGE)
steps:
- bash: |
set -e
uname -a
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
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}
./tools/ci/linux-cxx-install.sh
displayName: 'Install CXX'
- bash: |
set -e
pushd ${HOME}
wget -nv https://github.com/boostorg/build/archive/master.tar.gz
tar -zxf master.tar.gz
cd build-master
wget -nv https://github.com/boostorg/build/archive/develop.tar.gz
tar -zxf develop.tar.gz
cd build-develop
CXX= ./bootstrap.sh
sudo ./b2 install
popd
@ -174,53 +79,39 @@ stages:
CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
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
displayName: Test
- job: 'macOS'
strategy:
matrix:
Xcode 11.4:
Xcode 11.4.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.4_beta.app
XCODE_APP: /Applications/Xcode_11.4.1.app
VM_IMAGE: 'macOS-10.15'
Xcode 11.3.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.3.1.app
VM_IMAGE: 'macOS-10.15'
Xcode 11.3:
Xcode 11.2.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.3.app
XCODE_APP: /Applications/Xcode_11.2.1.app
VM_IMAGE: 'macOS-10.15'
Xcode 11.2:
Xcode 10.3:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.2.app
VM_IMAGE: 'macOS-10.15'
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_APP: /Applications/Xcode_10.3.app
VM_IMAGE: 'macOS-10.14'
Xcode 10.2.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_10.2.1.app
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:
TOOLSET: clang
CXX: clang++
@ -244,9 +135,9 @@ stages:
- bash: |
set -e
pushd ${HOME}
wget -nv https://github.com/boostorg/build/archive/master.tar.gz
tar -zxf master.tar.gz
cd build-master
wget -nv https://github.com/boostorg/build/archive/develop.tar.gz
tar -zxf develop.tar.gz
cd build-develop
CXX= ./bootstrap.sh
sudo ./b2 install
popd
@ -256,7 +147,8 @@ stages:
CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
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
displayName: Test
@ -313,7 +205,7 @@ stages:
steps:
- script: |
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
- task: ExtractFiles@1
inputs:
@ -323,11 +215,12 @@ stages:
displayName: Extract B2
- script: |
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
displayName: Install B2
- script: |
set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-master
set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-develop
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

View File

@ -1,5 +1,5 @@
////
Copyright 2014-2020 Rene Rivera
Copyright 2014-2021 Rene Rivera
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -7,6 +7,24 @@ http://www.boost.org/LICENSE_1_0.txt)
= History
== 1.13
* Add `ARCH_PPC_64` predef.
* Fix `ARCH_WORD_BITS*` redefinition warnings/errors.
* Add `ARCH_E2K`, Elbrus 2000, architecture from Konstantin Ivlev.
* Fix not handling recent C++ version that go above 10.x version.
== 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
* Add `BOOST_ARCH_RISCV`. (from Andreas Schwab)

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<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">
<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">
@ -48,7 +48,7 @@ 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}
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}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
@ -63,10 +63,8 @@ img{-ms-interpolation-mode:bicubic}
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}
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:hover,a:focus{color:#1d4b8f}
a img{border:0}
@ -106,19 +104,22 @@ 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{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede;word-wrap:normal}
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{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 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::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)>code.nobreak{word-wrap:normal}
:not(pre)>code.nowrap{white-space:nowrap}
:not(pre).nobreak{word-wrap:normal}
:not(pre).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 code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
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>:first-child{margin-top: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}
#content{margin-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 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{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}
.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}
@ -216,7 +217,7 @@ table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font
.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>.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: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}
@ -262,21 +263,20 @@ pre.pygments .lineno::before{content:"";margin-right:-.125em}
.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 .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;word-wrap:anywhere}
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.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.grid-all>*>tr>*{border-width:1px}
table.grid-cols>*>tr>*{border-width:0 1px}
table.grid-rows>*>tr>*{border-width:1px 0}
table.frame-all{border-width:1px}
table.frame-ends{border-width:1px 0}
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}
th.halign-left,td.halign-left{text-align:left}
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-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{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}
@ -314,6 +314,7 @@ ol.lowergreek{list-style-type:lower-greek}
.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}
td.hdlist2{word-wrap:anywhere}
.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}
@ -386,7 +387,7 @@ a span.icon>.fa{cursor:inherit}
.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: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]+b{display:none}
.conum[data-value]::after{content:attr(data-value)}
@ -413,6 +414,7 @@ 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}
#header,#content,#footnotes,#footer{max-width:none}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
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}}
@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
</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>
<body class="article toc2 toc-left">
<div id="header">
@ -477,23 +550,25 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
<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_ia64">4.1.5. <code>BOOST_ARCH_IA64</code></a></li>
<li><a href="#_boost_arch_m68k">4.1.6. <code>BOOST_ARCH_M68K</code></a></li>
<li><a href="#_boost_arch_mips">4.1.7. <code>BOOST_ARCH_MIPS</code></a></li>
<li><a href="#_boost_arch_parisc">4.1.8. <code>BOOST_ARCH_PARISC</code></a></li>
<li><a href="#_boost_arch_ppc">4.1.9. <code>BOOST_ARCH_PPC</code></a></li>
<li><a href="#_boost_arch_ptx">4.1.10. <code>BOOST_ARCH_PTX</code></a></li>
<li><a href="#_boost_arch_pyramid">4.1.11. <code>BOOST_ARCH_PYRAMID</code></a></li>
<li><a href="#_boost_arch_riscv">4.1.12. <code>BOOST_ARCH_RISCV</code></a></li>
<li><a href="#_boost_arch_rs6000">4.1.13. <code>BOOST_ARCH_RS6000</code></a></li>
<li><a href="#_boost_arch_sparc">4.1.14. <code>BOOST_ARCH_SPARC</code></a></li>
<li><a href="#_boost_arch_sh">4.1.15. <code>BOOST_ARCH_SH</code></a></li>
<li><a href="#_boost_arch_sys370">4.1.16. <code>BOOST_ARCH_SYS370</code></a></li>
<li><a href="#_boost_arch_sys390">4.1.17. <code>BOOST_ARCH_SYS390</code></a></li>
<li><a href="#_boost_arch_x86">4.1.18. <code>BOOST_ARCH_X86</code></a></li>
<li><a href="#_boost_arch_z">4.1.19. <code>BOOST_ARCH_Z</code></a></li>
<li><a href="#_boost_arch_x86_32">4.1.20. <code>BOOST_ARCH_X86_32</code></a></li>
<li><a href="#_boost_arch_x86_64">4.1.21. <code>BOOST_ARCH_X86_64</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>
@ -620,8 +695,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>
<ul class="sectlevel3">
<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_predef_tested_at">4.8.3. <code>BOOST_PREDEF_TESTED_AT</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>
@ -641,18 +717,20 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
</li>
<li><a href="#_history">6. History</a>
<ul class="sectlevel2">
<li><a href="#_1_11">6.1. 1.11</a></li>
<li><a href="#_1_10">6.2. 1.10</a></li>
<li><a href="#_1_9">6.3. 1.9</a></li>
<li><a href="#_1_8">6.4. 1.8</a></li>
<li><a href="#_1_7">6.5. 1.7</a></li>
<li><a href="#_1_6">6.6. 1.6</a></li>
<li><a href="#_1_5">6.7. 1.5</a></li>
<li><a href="#_1_4_1">6.8. 1.4.1</a></li>
<li><a href="#_1_4">6.9. 1.4</a></li>
<li><a href="#_1_3">6.10. 1.3</a></li>
<li><a href="#_1_2">6.11. 1.2</a></li>
<li><a href="#_1_1">6.12. 1.1</a></li>
<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>
@ -1743,7 +1821,35 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_ia64"><a class="anchor" href="#_boost_arch_ia64"></a>4.1.5. <code>BOOST_ARCH_IA64</code></h4>
<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>
@ -1787,7 +1893,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_m68k"><a class="anchor" href="#_boost_arch_m68k"></a>4.1.6. <code>BOOST_ARCH_M68K</code></h4>
<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>
@ -1887,7 +1993,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_mips"><a class="anchor" href="#_boost_arch_mips"></a>4.1.7. <code>BOOST_ARCH_MIPS</code></h4>
<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>
@ -1959,7 +2065,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_parisc"><a class="anchor" href="#_boost_arch_parisc"></a>4.1.8. <code>BOOST_ARCH_PARISC</code></h4>
<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>
@ -2023,7 +2129,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_ppc"><a class="anchor" href="#_boost_arch_ppc"></a>4.1.9. <code>BOOST_ARCH_PPC</code></h4>
<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>
@ -2048,6 +2154,10 @@ and "Y", "M", "D" for dates.</p>
<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>
@ -2056,6 +2166,18 @@ and "Y", "M", "D" for dates.</p>
<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>
@ -2064,6 +2186,10 @@ and "Y", "M", "D" for dates.</p>
<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>
@ -2076,6 +2202,10 @@ and "Y", "M", "D" for dates.</p>
<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>
@ -2103,7 +2233,43 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_ptx"><a class="anchor" href="#_boost_arch_ptx"></a>4.1.10. <code>BOOST_ARCH_PTX</code></h4>
<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>
@ -2131,7 +2297,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_pyramid"><a class="anchor" href="#_boost_arch_pyramid"></a>4.1.11. <code>BOOST_ARCH_PYRAMID</code></h4>
<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>
@ -2155,7 +2321,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_riscv"><a class="anchor" href="#_boost_arch_riscv"></a>4.1.12. <code>BOOST_ARCH_RISCV</code></h4>
<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>
@ -2179,7 +2345,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_rs6000"><a class="anchor" href="#_boost_arch_rs6000"></a>4.1.13. <code>BOOST_ARCH_RS6000</code></h4>
<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>
@ -2219,7 +2385,7 @@ and "Y", "M", "D" for dates.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_sparc"><a class="anchor" href="#_boost_arch_sparc"></a>4.1.14. <code>BOOST_ARCH_SPARC</code></h4>
<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>
@ -2248,14 +2414,22 @@ and "Y", "M", "D" for dates.</p>
<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.15. <code>BOOST_ARCH_SH</code></h4>
<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>
@ -2304,7 +2478,7 @@ If available versions [1-5] are specifically detected.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_sys370"><a class="anchor" href="#_boost_arch_sys370"></a>4.1.16. <code>BOOST_ARCH_SYS370</code></h4>
<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>
@ -2332,7 +2506,7 @@ If available versions [1-5] are specifically detected.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_sys390"><a class="anchor" href="#_boost_arch_sys390"></a>4.1.17. <code>BOOST_ARCH_SYS390</code></h4>
<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>
@ -2360,7 +2534,7 @@ If available versions [1-5] are specifically detected.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_x86"><a class="anchor" href="#_boost_arch_x86"></a>4.1.18. <code>BOOST_ARCH_X86</code></h4>
<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
@ -2368,7 +2542,7 @@ a category to indicate that either <code>BOOST_ARCH_X86_32</code> or
</div>
</div>
<div class="sect3">
<h4 id="_boost_arch_z"><a class="anchor" href="#_boost_arch_z"></a>4.1.19. <code>BOOST_ARCH_Z</code></h4>
<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>
@ -2392,7 +2566,7 @@ a category to indicate that either <code>BOOST_ARCH_X86_32</code> or
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_x86_32"><a class="anchor" href="#_boost_arch_x86_32"></a>4.1.20. <code>BOOST_ARCH_X86_32</code></h4>
<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>
@ -2481,9 +2655,9 @@ If available versions [3-6] are specifically detected.</p>
</table>
</div>
<div class="sect3">
<h4 id="_boost_arch_x86_64"><a class="anchor" href="#_boost_arch_x86_64"></a>4.1.21. <code>BOOST_ARCH_X86_64</code></h4>
<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="http://en.wikipedia.org/wiki/Ia64">Intel IA-64</a> architecture.</p>
<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>
@ -4100,7 +4274,7 @@ If available version number as major, minor, and patch.</p>
<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="http://gcc.gnu.org/libstdc/[GNU libstdc" class="bare">http://gcc.gnu.org/libstdc/[GNU libstdc</a>] Standard C++ library.
<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">
@ -5536,7 +5710,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>
<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
is available if the current development environment is capable of targeting
UWP development.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
@ -6316,7 +6490,43 @@ information and acquired knowledge:</p>
</div>
</div>
<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="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>
@ -6342,7 +6552,7 @@ is undefine this expand to test the given <code>symbol</code> version value with
</div>
</div>
<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="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>
@ -6494,6 +6704,9 @@ indicates an ignored digit.</p>
<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>
@ -6725,7 +6938,55 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
<h2 id="_history"><a class="anchor" href="#_history"></a>6. History</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_1_11"><a class="anchor" href="#_1_11"></a>6.1. 1.11</h3>
<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>
@ -6753,7 +7014,7 @@ expressions. It defaults to "c++", but can be any of: "c", "cpp",
</div>
</div>
<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.4. 1.10</h3>
<div class="ulist">
<ul>
<li>
@ -6778,7 +7039,7 @@ removed in a future release.</p>
</div>
</div>
<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.5. 1.9</h3>
<div class="ulist">
<ul>
<li>
@ -6791,7 +7052,7 @@ removed in a future release.</p>
</div>
</div>
<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.6. 1.8</h3>
<div class="ulist">
<ul>
<li>
@ -6813,7 +7074,7 @@ removed in a future release.</p>
</div>
</div>
<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.7. 1.7</h3>
<div class="ulist">
<ul>
<li>
@ -6829,7 +7090,7 @@ removed in a future release.</p>
</div>
</div>
<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.8. 1.6</h3>
<div class="ulist">
<ul>
<li>
@ -6853,7 +7114,7 @@ Baratov)</p>
</div>
</div>
<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.9. 1.5</h3>
<div class="ulist">
<ul>
<li>
@ -6872,7 +7133,7 @@ version instead of the varied product versions.</p>
</div>
</div>
<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.10. 1.4.1</h3>
<div class="ulist">
<ul>
<li>
@ -6885,7 +7146,7 @@ version instead of the varied product versions.</p>
</div>
</div>
<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.11. 1.4</h3>
<div class="ulist">
<ul>
<li>
@ -6906,7 +7167,7 @@ use cases. And changed the BBv2 check support to use compile only checks.</p>
</div>
</div>
<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.12. 1.3</h3>
<div class="ulist">
<ul>
<li>
@ -6931,7 +7192,7 @@ use cases. And changed the BBv2 check support to use compile only checks.</p>
</div>
</div>
<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.13. 1.2</h3>
<div class="ulist">
<ul>
<li>
@ -6955,7 +7216,7 @@ checks.</p>
</div>
</div>
<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.14. 1.1</h3>
<div class="ulist">
<ul>
<li>
@ -7051,76 +7312,5 @@ Joel Falcou for managing the review of this library.</p>
</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>
</html>

View File

@ -564,6 +564,8 @@ include::../include/boost/predef/architecture/blackfin.h[tag=reference]
include::../include/boost/predef/architecture/convex.h[tag=reference]
include::../include/boost/predef/architecture/e2k.h[tag=reference]
include::../include/boost/predef/architecture/ia64.h[tag=reference]
include::../include/boost/predef/architecture/m68k.h[tag=reference]
@ -828,6 +830,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/wordsize.h[tag=reference]
include::../include/boost/predef/other/workaround.h[tag=reference]
:leveloffset: -3

View File

@ -14,6 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/architecture/arm.h>
#include <boost/predef/architecture/blackfin.h>
#include <boost/predef/architecture/convex.h>
#include <boost/predef/architecture/e2k.h>
#include <boost/predef/architecture/ia64.h>
#include <boost/predef/architecture/m68k.h>
#include <boost/predef/architecture/mips.h>
@ -29,6 +30,5 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/architecture/sys390.h>
#include <boost/predef/architecture/x86.h>
#include <boost/predef/architecture/z.h>
/*#include <boost/predef/architecture/.h>*/
#endif

View File

@ -52,6 +52,11 @@ http://en.wikipedia.org/wiki/DEC_Alpha[DEC Alpha] architecture.
# define BOOST_ARCH_ALPHA_AVAILABLE
#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"
#endif

View File

@ -126,6 +126,16 @@ http://en.wikipedia.org/wiki/ARM_architecture[ARM] architecture.
# define BOOST_ARCH_ARM_AVAILABLE
#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"
#endif

View File

@ -39,6 +39,11 @@ Blackfin Processors from Analog Devices.
# define BOOST_ARCH_BLACKFIN_AVAILABLE
#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"
#endif

View File

@ -58,6 +58,11 @@ http://en.wikipedia.org/wiki/Convex_Computer[Convex Computer] architecture.
# define BOOST_ARCH_CONVEX_AVAILABLE
#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"
#endif

View File

@ -0,0 +1,54 @@
/*
Copyright Konstantin Ivlev 2021
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_ARCHITECTURE_E2K_H
#define BOOST_PREDEF_ARCHITECTURE_E2K_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_ARCH_E2K`
https://en.wikipedia.org/wiki/Elbrus_2000[E2K] architecture.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__e2k__+` | {predef_detection}
| `+__e2k__+` | V.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_E2K BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__e2k__)
# undef BOOST_ARCH_E2K
# if !defined(BOOST_ARCH_E2K) && defined(__iset__)
# define BOOST_ARCH_E2K BOOST_VERSION_NUMBER(__iset__,0,0)
# endif
# if !defined(BOOST_ARCH_E2K)
# define BOOST_ARCH_E2K BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#if BOOST_ARCH_E2K
# define BOOST_ARCH_E2K_AVAILABLE
#endif
#if BOOST_ARCH_E2K
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#define BOOST_ARCH_E2K_NAME "E2K"
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_E2K,BOOST_ARCH_E2K_NAME)

View File

@ -42,6 +42,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel Itanium 64] architecture.
# define BOOST_ARCH_IA64_AVAILABLE
#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"
#endif

View File

@ -75,6 +75,11 @@ http://en.wikipedia.org/wiki/M68k[Motorola 68k] architecture.
# define BOOST_ARCH_M68K_AVAILABLE
#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"
#endif

View File

@ -66,6 +66,16 @@ http://en.wikipedia.org/wiki/MIPS_architecture[MIPS] architecture.
# define BOOST_ARCH_MIPS_AVAILABLE
#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"
#endif

View File

@ -57,6 +57,11 @@ http://en.wikipedia.org/wiki/PA-RISC_family[HP/PA RISC] architecture.
# define BOOST_ARCH_PARISC_AVAILABLE
#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"
#endif

View File

@ -22,13 +22,19 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
| `+__powerpc+` | {predef_detection}
| `+__powerpc__+` | {predef_detection}
| `+__powerpc64__+` | {predef_detection}
| `+__POWERPC__+` | {predef_detection}
| `+__ppc__+` | {predef_detection}
| `+__ppc64__+` | {predef_detection}
| `+__PPC__+` | {predef_detection}
| `+__PPC64__+` | {predef_detection}
| `+_M_PPC+` | {predef_detection}
| `+_ARCH_PPC+` | {predef_detection}
| `+_ARCH_PPC64+` | {predef_detection}
| `+__PPCGECKO__+` | {predef_detection}
| `+__PPCBROADWAY__+` | {predef_detection}
| `+_XENON+` | {predef_detection}
| `+__ppc+` | {predef_detection}
| `+__ppc601__+` | 6.1.0
| `+_ARCH_601+` | 6.1.0
@ -41,11 +47,13 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
#define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__powerpc) || defined(__powerpc__) || \
defined(__POWERPC__) || defined(__ppc__) || \
defined(_M_PPC) || defined(_ARCH_PPC) || \
#if defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || \
defined(__POWERPC__) || defined(__ppc__) || defined(__ppc64__) || \
defined(__PPC__) || defined(__PPC64__) || \
defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
defined(_XENON)
defined(_XENON) || \
defined(__ppc)
# undef BOOST_ARCH_PPC
# if !defined (BOOST_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601))
# define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,1,0)
@ -67,7 +75,50 @@ http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
#define BOOST_ARCH_PPC_NAME "PowerPC"
/* tag::reference[]
= `BOOST_ARCH_PPC_64`
http://en.wikipedia.org/wiki/PowerPC[PowerPC] 64 bit architecture.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__powerpc64__+` | {predef_detection}
| `+__ppc64__+` | {predef_detection}
| `+__PPC64__+` | {predef_detection}
| `+_ARCH_PPC64+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_PPC_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__powerpc64__) || defined(__ppc64__) || defined(__PPC64__) || \
defined(_ARCH_PPC64)
# undef BOOST_ARCH_PPC_64
# define BOOST_ARCH_PPC_64 BOOST_VERSION_NUMBER_AVAILABLE
#endif
#if BOOST_ARCH_PPC_64
# define BOOST_ARCH_PPC_64_AVAILABLE
#endif
#define BOOST_ARCH_PPC_64_NAME "PowerPC64"
#if BOOST_ARCH_PPC_64
# 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
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC,BOOST_ARCH_PPC_NAME)
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC_64,BOOST_ARCH_PPC_64_NAME)

View File

@ -37,6 +37,11 @@ https://en.wikipedia.org/wiki/Parallel_Thread_Execution[PTX] architecture.
# define BOOST_ARCH_PTX_AVAILABLE
#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"
#endif

View File

@ -35,6 +35,11 @@ Pyramid 9810 architecture.
# define BOOST_ARCH_PYRAMID_AVAILABLE
#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"
#endif

View File

@ -35,6 +35,11 @@ http://en.wikipedia.org/wiki/RISC-V[RISC-V] architecture.
# define BOOST_ARCH_RISCV_AVAILABLE
#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"
#endif

View File

@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
# define BOOST_ARCH_RS6000_AVAILABLE
#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_PWR BOOST_ARCH_RS6000
@ -49,6 +54,11 @@ http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
# define BOOST_ARCH_PWR_AVAILABLE
#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
#endif

View File

@ -24,7 +24,9 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
| `+__sparc+` | {predef_detection}
| `+__sparcv9+` | 9.0.0
| `+__sparc_v9__+` | 9.0.0
| `+__sparcv8+` | 8.0.0
| `+__sparc_v8__+` | 8.0.0
|===
*/ // end::reference[]
@ -32,10 +34,10 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
#if defined(__sparc__) || defined(__sparc)
# undef BOOST_ARCH_SPARC
# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv9)
# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)
# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
# endif
# if !defined(BOOST_ARCH_SPARC) && defined(__sparcv8)
# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)
# define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
# endif
# if !defined(BOOST_ARCH_SPARC)
@ -47,6 +49,16 @@ http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
# define BOOST_ARCH_SPARC_AVAILABLE
#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"
#endif

View File

@ -60,6 +60,19 @@ If available versions [1-5] are specifically detected.
# define BOOST_ARCH_SH_AVAILABLE
#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"
#endif

View File

@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/370[System/370] architecture.
# define BOOST_ARCH_SYS370_AVAILABLE
#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"
#endif

View File

@ -36,6 +36,11 @@ http://en.wikipedia.org/wiki/System/390[System/390] architecture.
# define BOOST_ARCH_SYS390_AVAILABLE
#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"
#endif

View File

@ -78,6 +78,11 @@ If available versions [3-6] are specifically detected.
# define BOOST_ARCH_X86_32_AVAILABLE
#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"
#include <boost/predef/architecture/x86.h>

View File

@ -1,5 +1,5 @@
/*
Copyright Rene Rivera 2008-2015
Copyright Rene Rivera 2008-2021
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)
@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/* tag::reference[]
= `BOOST_ARCH_X86_64`
http://en.wikipedia.org/wiki/Ia64[Intel IA-64] architecture.
https://en.wikipedia.org/wiki/X86-64[X86-64] architecture.
[options="header"]
|===
@ -41,6 +41,11 @@ http://en.wikipedia.org/wiki/Ia64[Intel IA-64] architecture.
# define BOOST_ARCH_X86_64_AVAILABLE
#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"
#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
#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"
#endif

View File

@ -32,7 +32,7 @@ http://libcxx.llvm.org/[libc++] {CPP} Standard Library.
#if defined(_LIBCPP_VERSION)
# 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
#if BOOST_LIB_STD_CXX

View File

@ -16,7 +16,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/* tag::reference[]
= `BOOST_LIB_STD_GNU`
http://gcc.gnu.org/libstdc++/[GNU libstdc++] Standard {CPP} library.
https://gcc.gnu.org/onlinedocs/libstdc%2b%2b/[GNU libstdc++] Standard {CPP} library.
Version number available as year (from 1970), month, and day.
[options="header"]

View File

@ -66,6 +66,10 @@ Macros are:
*/ // end::reference[]
#define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
/* 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)`
*/ // end::reference[]
#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__) \
)
# ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE
# endif

View File

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

View File

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

View File

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

View File

@ -80,6 +80,7 @@ http://en.wikipedia.org/wiki/Openbsd[OpenBSD] operating system.
defined(__OpenBSD__) \
)
# ifndef BOOST_OS_BSD_AVAILABLE
# undef BOOST_OS_BSD
# define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_OS_BSD_AVAILABLE
# 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.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/other/endian.h>
/*#include <boost/predef/other/.h>*/
#include <boost/predef/other/wordsize.h>
#include <boost/predef/other/workaround.h>
#endif

View File

@ -54,18 +54,14 @@ information and acquired knowledge:
*/
#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_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>
# else
# if BOOST_OS_MACOS
# include <machine/endian.h>
# else
# if BOOST_OS_BSD
# if BOOST_OS_BSD_OPEN
# include <machine/endian.h>
# else
# include <sys/endian.h>
# endif
# include <sys/endian.h>
# endif
# endif
# endif
@ -99,7 +95,7 @@ information and acquired knowledge:
# 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 && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
@ -116,7 +112,7 @@ information and acquired knowledge:
# 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 && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
@ -128,7 +124,8 @@ information and acquired knowledge:
defined(_MIPSEL) || \
defined(__MIPSEL) || \
defined(__MIPSEL__) || \
defined(__riscv)
defined(__riscv) || \
defined(__e2k__)
# undef BOOST_ENDIAN_LITTLE_BYTE
# define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
# endif
@ -158,7 +155,7 @@ information and acquired knowledge:
#endif
/* 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 && \
!BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD

View File

@ -0,0 +1,73 @@
/*
Copyright Rene Ferdinand Rivera Morell 2020-2021
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[]
#if !defined(BOOST_ARCH_WORD_BITS_64)
# define BOOST_ARCH_WORD_BITS_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#elif !defined(BOOST_ARCH_WORD_BITS)
# define BOOST_ARCH_WORD_BITS 64
#endif
#if !defined(BOOST_ARCH_WORD_BITS_32)
# define BOOST_ARCH_WORD_BITS_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#elif !defined(BOOST_ARCH_WORD_BITS)
# define BOOST_ARCH_WORD_BITS 32
#endif
#if !defined(BOOST_ARCH_WORD_BITS_16)
# define BOOST_ARCH_WORD_BITS_16 BOOST_VERSION_NUMBER_NOT_AVAILABLE
#elif !defined(BOOST_ARCH_WORD_BITS)
# define BOOST_ARCH_WORD_BITS 16
#endif
#if !defined(BOOST_ARCH_WORD_BITS)
# define BOOST_ARCH_WORD_BITS 0
#endif
#define BOOST_ARCH_WORD_BITS_NAME "Word Bits"
#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,BOOST_ARCH_WORD_BITS_NAME)
#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_runtime.h> // deprecated
#include <boost/predef/platform/ios.h>
/*#include <boost/predef/platform/.h>*/
#endif

View File

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

View File

@ -2,13 +2,14 @@
"key": "predef",
"name": "Predef",
"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.",
"category": [
"Miscellaneous"
],
"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)
import ../tools/check/predef : require check : predef-require predef-check ;
import common ;
import path ;
import regex ;
# This deals with the unfortunate aspect of a Boost monolithic release
# 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 ;
if ! [ path.exists $(PREDEF_H) ]
{
@ -25,11 +27,14 @@ project
using testing ;
test-suite predef :
test-suite predef-info :
[ 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_objcpp.mm : : : <test-info>always_show_run_output ]
[ run info_as_objc.m : : : <test-info>always_show_run_output ]
;
test-suite predef :
[ run version.cpp ]
[ run make.cpp ]
[ compile macos_endian.c : [ predef-require "BOOST_OS_MACOS" : cpp ] ]
@ -43,15 +48,62 @@ test-suite predef :
[ 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
# 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.
alias full : predef ;
alias full : predef predef-info ;
# Extra's target. Nothing for Predef.
alias extra ;
# Extra's target.
alias extra : predef-headers ;
explicit minimal ;
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.