Compare commits

...

18 Commits

Author SHA1 Message Date
225f1a8dc9 Specify LANGUAGES NONE to avoid enabling C and CXX 2021-09-18 19:38:50 +03:00
1be0e4a2d8 added missing brackets (#118) 2021-05-21 09:31:11 -05:00
df63bf3dca Fix spelling of epoch (#119) 2021-05-21 09:30:36 -05: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
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
46 changed files with 893 additions and 358 deletions

View File

@ -25,7 +25,7 @@ cmake_minimum_required( VERSION 3.0 )
# Don't set VERSION, as that's a pita to keep up to date with the version
# header. And don't set LANGUAGES as we are multi-language and header
# only, so it's irrelevant.
project( BoostPredef )
project( BoostPredef LANGUAGES NONE )
# Simple INTERFACE, and header only, library target.
add_library( boost_predef INTERFACE )

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>
@ -3574,7 +3748,7 @@ If available, the version is detected as VV.RR.P.</p>
<h4 id="_boost_lang_stdc"><a class="anchor" href="#_boost_lang_stdc"></a>4.3.3. <code>BOOST_LANG_STDC</code></h4>
<div class="paragraph">
<p><a href="http://en.wikipedia.org/wiki/C_(programming_language)">Standard C</a> language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.</p>
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
@ -3603,7 +3777,7 @@ If available, the year of the standard is detected as YYYY.MM.1 from the Epoc da
<h4 id="_boost_lang_stdcpp"><a class="anchor" href="#_boost_lang_stdcpp"></a>4.3.4. <code>BOOST_LANG_STDCPP</code></h4>
<div class="paragraph">
<p><a href="http://en.wikipedia.org/wiki/C%2B%2B">Standard C++</a> language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
Because of the way the C++ standardization process works the
defined version year will not be the commonly known year of the standard.
Specifically the defined versions are:</p>
@ -3672,7 +3846,7 @@ Specifically the defined versions are:</p>
<h4 id="_boost_lang_stdcppcli"><a class="anchor" href="#_boost_lang_stdcppcli"></a>4.3.5. <code>BOOST_LANG_STDCPPCLI</code></h4>
<div class="paragraph">
<p><a href="http://en.wikipedia.org/wiki/C%2B%2B/CLI">Standard C++/CLI</a> language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.</p>
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.</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>
</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

@ -15,7 +15,7 @@ http://www.boost.org/LICENSE_1_0.txt)
= `BOOST_LANG_STDC`
http://en.wikipedia.org/wiki/C_(programming_language)[Standard C] language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
[options="header"]
|===

View File

@ -15,7 +15,7 @@ http://www.boost.org/LICENSE_1_0.txt)
= `BOOST_LANG_STDCPP`
http://en.wikipedia.org/wiki/C%2B%2B[Standard {CPP}] language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
Because of the way the {CPP} standardization process works the
defined version year will not be the commonly known year of the standard.
Specifically the defined versions are:
@ -61,7 +61,7 @@ Specifically the defined versions are:
= `BOOST_LANG_STDCPPCLI`
http://en.wikipedia.org/wiki/C%2B%2B/CLI[Standard {CPP}/CLI] language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoch date.
[options="header"]
|===

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.