Compare commits

...

112 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
9c46a94ae5 Update copyright. Remove unused CI code. Upate AZP config.
(merge from hash-predef)
2020-03-24 10:25:28 -05:00
f6979bd4a7 Update history. 2020-03-24 10:09:49 -05:00
078226b9f8 wineg++ doesn't have <ntverp.h> either (#104) 2020-02-29 20:59:29 -06:00
966707dc1f Remove deprecated HASH_PREDEF_OS_ANDROID.
Fixes #101 (merge from hash-predef)
2020-02-29 09:34:42 -06:00
c092d00770 Fix UWP detection error on WinCE.
The ntverp.h header is not avilable on Win32 WinCE, just like MinGW32.

Fixes #102 (merge from hash-predef)
2020-02-29 08:06:33 -06:00
fa099f3b2c Fix C++ version number doc.
Fixes #105 (merge from hash-predef)
2020-02-28 23:35:01 -06:00
3330514089 Merge from hash-predef. 2020-02-28 23:31:33 -06:00
aa6e232bf1 Remove deprecated Boost endian macros. 2020-01-01 16:08:28 -06:00
fb59068deb Convert documentatio to Asciidoctor. 2019-12-31 16:14:17 -06:00
73d7b4f66f Fix bad checks on Boost release archive structure.
The headers on a Boost release are only present at the root. This adds that to the include search path so that the checks can also work on that structure.
2019-08-12 12:56:26 -05:00
29095cefd9 Start of 1.11 version. Add missing (c) for riscv.h 2019-08-04 09:20:13 -05:00
fc99bc29cb Add detection of RISC-V from __riscv (#97) 2019-08-03 10:27:22 -05:00
4bc7cc02ed Add RISC-V endian detection (#100)
boost/predef/other/endian.h has two ways of detecting the endianess:

 (1) It includes <endian.h> if BOOST_LIB_C_GNU is defined, and then
     use __BYTE_ORDER to decide the endianness.

 (2) Otherwise, if (1) was not possible for some reason, it uses
     architecture defines to decide the endianness.

(1) works perfectly fine with glibc toolchains, because
BOOST_LIB_C_GNU is defined, but it doesn't work with musl. Due to
this, <endian.h> is not included, __BYTE_ORDER is not defined, and
method (1) does not work, causing build failures on musl toolchains
that don't have explicit handling by architecture name (method 2).

So this commit fixes RISC-V musl build by adding support for the
__riscv architecture define, to determine that the endianness is
little endian.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-08-03 10:25:06 -05:00
094ac2ffdd Move to AZP for testing. 2019-04-21 22:15:17 -05:00
13de873d87 Work around Boost removing modular include dirs for release. 2019-03-08 18:42:27 -06:00
2e65c250f5 Update copyright date. 2019-01-21 22:33:23 -06:00
a2608f26a3 Rework ARM detection to favor versioned predefs.
This reworks the order in which the compiler predefs are checked to use
the ones that provide version info. Also add the arch predefs for older
compilers that don't define the predefs with version info for arm4,
arm5, arm6, and arm7.

Continuation of #94
2019-01-21 22:13:42 -06:00
7e31244f01 Fix bad include of sub-BSD os headers from main BSD header.
Fixes #85
2019-01-14 00:21:46 -06:00
6fea8a4b90 Fix NetBSD def name. 2019-01-13 11:56:08 -06:00
fee815d6d7 Missed release note for iOS platform type fix. 2019-01-13 09:00:06 -06:00
2e35ba95c8 Fixes use of deprecated TARGET_IPHONE_SIMULATOR.
The TARGET_IPHONE_SIMULATOR predef was deprecated in favor of
TARGET_OS_SIMULATOR. We now use both predefs to detect device vs.
simulator.

Fixes #83
2019-01-13 08:53:22 -06:00
cb4f8140f1 Add history note for B2 standalone project. 2019-01-11 22:05:53 -06:00
f2de8d8211 Another tweak for standalone and symetric build. 2019-01-11 21:36:07 -06:00
a340a52605 Add PLAT_ANDROID and deprecate OS_ANDROID.
Fixes #41 #81
2019-01-10 13:27:41 -06:00
48d9231a1b Convert build files to rootless parity with hash-predef. 2019-01-09 16:27:04 -06:00
eb682657a2 Add detection of ARM from __aarch64__ predef.
Fixes #94
2019-01-07 16:28:30 -06:00
c53294180d Refresh from Hash. 2019-01-07 08:33:58 -06:00
9ead140e5b Minor tweaks to cmake support to make hash-boost conversion easier. 2019-01-07 08:18:59 -06:00
d33798214d Cleanups of cmake build use support. 2019-01-03 21:57:47 -06:00
f862009841 [CMake] Generate cmake target that other libraries can use (#86)
Generates cmake target that other libraries can use to express
their dependency on this library and retrieve any configuration
information such as the include directory.
2019-01-02 07:26:48 -06:00
d58fcca2d5 os/linux: add more linux detection defines. (#91)
Some releases of g++, on some platforms, whilst running under some
standards, may not define neither linux, nor __linux. Add detections
for __linux__ and __gnu_linux__ for robustness.
2018-11-26 08:15:55 -06:00
aa94d69718 Add history note for Cygwin OS predef. 2018-11-06 09:35:15 -06:00
62a50d3892 Add version information to os/cygwin detection (#88) 2018-11-06 08:56:11 -06:00
32d4581c16 Deprecation message for detail endian headers. 2018-09-03 15:42:43 -05:00
92881c4c7a Bump version for next release. 2018-09-02 14:30:00 -05:00
07df9dd360 Always define BOOST_COMP_NVCC instead of BOOST_COMP_NVCC_EMULATED (#84)
Currently BOOST_COMP_NVCC is never set but always BOOST_COMP_NVCC_EMULATED
because the NVCC preprocessor emulates the host compiler being used
(gcc/clang/msvc/...) which are detected earlier.

The nvcc compilation process is somewhat special as can be read here:
https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#cuda-compilation-trajectory
The nvcc compiler precompiles the input two times. Once for the device code
being compiled by the cicc device compiler and once for the host code
compiled by the real host compiler. NVCC uses gcc/clang/msvc/...
depending on the host compiler being set on the command line.

Predef (as a preprocessor only lib) detects the one doing the preprocessing
as compiler and expects it to be the one doing the real compilation.
This is not true for NVCC which is only doing the preprocessing and which
is using another compiler for parts of its work. So for NVCC it should be
allowed to set BOOST_COMP_NVCC additionally to the already detected host
compiler because both is true: It is gcc/clang/... compiling the code, but it
is also NVCC doing th preprocessing and adding some other quirks you may
want to detect.

This behavior is similar to what boost config is doing in `select_compiler_config.hpp`.
There the NVCC detection is not handled as a real compiler (part of the
#if-#elif) but as additional option before the real compiler.
2018-08-30 14:41:44 -05:00
d8f410b4d0 Live patch project during CI testing. 2018-08-26 10:32:47 -05:00
759400b413 Rebase from hash-predef source. 2018-08-25 23:36:20 -05:00
560ff5298e Bump version, add history. 2018-06-23 21:37:05 -05:00
75b04d80e7 Avoid local project-config in git. 2018-06-23 17:28:51 -05:00
bb82002af6 Merge branch 'develop' 2018-06-23 16:34:17 -05:00
5d8818ddcb architecture: add support for __ARM_ARCH macro (#74)
gcc-6 defines __ARM_ARCH
2018-06-12 07:40:29 -05:00
11569d270c add detection for PTX architecture (#73) 2018-06-12 07:39:43 -05:00
c8c0134926 Don't test Appveyor PR branch. (#79)
Another PR test.
2018-05-16 07:19:08 -05:00
c37ef8b959 Remove clang-6, as PR test. (#78) 2018-05-15 09:36:27 -05:00
aba0bb4470 Need full recursive rmdir as it might not be empty. 2018-05-14 23:21:10 -05:00
02d09e78b6 Fix typo on ci script call. 2018-05-14 23:12:18 -05:00
7c0c1f2cb0 Don't do git command on lib dir, and add latest clangs. 2018-05-14 23:07:07 -05:00
d7bad38b5d Make the lib test generic to main or PRs. 2018-05-14 22:59:34 -05:00
9e73c55298 Switch to local CI scripts to make progress on CI errors. 2018-05-13 22:59:56 -05:00
7a4ca9dc90 add nvcc compiler detection (#72) 2018-05-13 10:22:00 -05:00
e8681a9b37 Add support for detecting CUDA (#71)
* add support for detecting CUDA
* add test for new make macro
2018-05-13 10:21:13 -05:00
9e31c6455c Remove undefined BOOST_ARCH_AMD64 (#75)
Remove reference to BOOST_ARCH_AMD64 as it has not been defined since commit b10e3490e.
2018-05-13 10:19:21 -05:00
0bccaa9ead issue-76: fix syntax error in jamfile (#77) 2018-05-13 10:17:57 -05:00
c8c26821b9 Merge remote-tracking branch 'origin/develop' 2017-11-10 09:01:39 -06:00
5e8f5d5a4b properly obtain the FreeBSD version (BOOST_OS_BSD_FREE) (#69) 2017-11-10 07:04:25 -06:00
74f88005cc rename library/c/cloudlibc.h to library/c/cloudabi.h (#68)
fix typo in cloudlibc detection
2017-11-09 22:48:35 -06:00
4a230ebe85 add detection for OpenBSD 5.x and 6.x (#67)
This fixes #66
2017-11-08 23:01:35 -06:00
e62a9c68b1 Merge remote-tracking branch 'origin/develop' 2017-10-25 13:44:21 -05:00
e31d12f25d Fix typo in header guard. 2017-10-25 12:32:20 -05:00
2bba31c5f4 Merge remote-tracking branch 'origin/develop' 2017-10-24 07:30:44 -05:00
e87cef64fe History note for CloudABI/LIB addition. 2017-10-23 17:07:20 -05:00
6f8a9ae440 platform detection for CloudABI with cloudlibc detection (#65) 2017-10-23 13:54:01 -05:00
a7cdea8faf Merge branch 'develop' of https://github.com/boostorg/predef into
develop

Conflicts:
	include/boost/predef/platform/windows_runtime.h
	include/boost/predef/platform/windows_uwp.h
2017-10-23 09:34:04 -05:00
1c0b55c2f9 Some tweak for 1.7 release.
* Bump version to 1.7
* Tweak docs for UWP detection.
* Add 1.7 history items.
2017-10-23 09:25:43 -05:00
0ab200d19e make BOOST_PLAT_WINDOWS_DESKTOP available in older SDKs for backwards compatibility (#64) 2017-10-18 07:00:02 -05:00
7c17b932e4 detect mingw32 and mingw64 as separate entities (#61) 2017-10-16 18:41:33 -05:00
de79c6d341 fix typo s/BOOST_ARCH_PARISK/BOOST_ARCH_PARISC (#63) 2017-10-11 08:16:56 -05:00
7c99dfbbd5 Revert "isolate all headers to ensure that none rely on inclusions from another (#60)" (#62)
This reverts commit 284cde95a2.
2017-10-04 14:13:28 -05:00
284cde95a2 isolate all headers to ensure that none rely on inclusions from another (#60) 2017-10-04 10:20:45 -05:00
bca18299d2 correct Windows UWP platform detection (#57) 2017-10-03 20:36:17 -05:00
aa4604a3bd Remove executable attribute from file. (#53) 2017-09-17 09:21:38 -05:00
ba45bd73f3 Seems we need to avoid duplicate project names. 2017-08-01 12:24:55 -05:00
ada62932d0 Merge remote-tracking branch 'origin/develop' 2017-06-27 21:21:56 -05:00
6a24a3a4bb Changes for version 1.6. 2017-06-05 09:14:37 -05:00
9afb15401b Handle Intel version 9999 == 12.1.0 (fixes #38). 2017-06-05 09:09:13 -05:00
0d9d5591da Merge branch 'develop' of https://github.com/boostorg/predef.git into develop 2017-06-01 22:31:30 -05:00
db499c07df Add WORKAROUND style definitions for public use. 2017-06-01 22:31:09 -05:00
9f6191e0bc Merge pull request #50 from gongminmin/develop
Adds support for MSVC ARM64 target.
2017-06-01 07:03:32 -05:00
4c822c49c2 Adds support for MSVC ARM64 target. 2017-06-01 00:08:56 -07:00
f109e20ad1 Fix missing non-detection test for new iOS platform. 2017-05-28 23:31:06 -05:00
d81ab5cc34 Merge pull request #49 from ruslo/pr.ios
Detect iOS simulator/device
2017-05-28 21:20:00 -05:00
cda33c33d9 Try mingw testing again. 2017-05-28 16:39:29 -05:00
6dfdf9d4dd Add testing with language flags. 2017-05-28 15:53:55 -05:00
5e76979e05 No MinGW for now, as it fails for some unknown reason. 2017-05-28 13:59:25 -05:00
541ec7edef MinGW64 5.x doesn't seem to actually exist in Appveyor. 2017-05-27 18:42:14 -05:00
87c4de2da2 Lets try MinGW builds. 2017-05-27 14:35:24 -05:00
693e973635 Never mind.. Travis empty job bug is not fixed. 2017-05-27 10:09:23 -05:00
77c66456dc Remove caching. Free limits are too low for Boost. 2017-05-27 10:01:09 -05:00
43758299bc Remove no longer needed empty job workaround. 2017-05-27 09:50:52 -05:00
ec6c26ef68 Detect iOS simulator/device 2017-05-22 12:28:47 +03:00
0f86c9b95e Add latest toolsets for CI testing. 2017-05-21 22:57:26 -05:00
523e866076 Merge remote-tracking branch 'origin/develop' 2017-05-21 21:43:36 -05:00
0bb6e754cb Fix header guard to correct type of predef.
Addresses PR #48 from @ruslo (Ruslan Baratov) but with shorter "PLAT" to
match the other platform headers.
2017-05-21 16:37:34 -05:00
162 changed files with 11908 additions and 2243 deletions

8
.gitignore vendored
View File

@ -1,2 +1,6 @@
/bin
/boost-build.jam
.bin
boost-build.jam
project-config.jam
*.pyc
.vscode/settings.json
.vscode/ipch

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Boost Predef</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View File

@ -1,98 +0,0 @@
# Use, modification, and distribution are
# subject to 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)
#
# Copyright Rene Rivera 2015-2016.
# Setting up notifications like this is optional as the default behavior
# of Travis is to notify the commiter of problems. But setting a specific
# recipient this way ensures you get all the communications about the
# builds.
notifications:
email:
recipients:
- grafikrobot@gmail.com
# For now the CI scripts only support the two main branches available
# on the boost super-project.
branches:
only:
- master
- develop
# We specify a generic language instead of C++ as Travis sets up
# additional environment vars that point to its default toolset
# instead of the one we install. The extra env doesn't interfere,
# but at the same time it's misleading. So to avoid confusion and
# possible unseen side effects we stick with no C++ default setup.
language: generic
# Speficy the default as Linux here, to avoid duplication in the matrix
# below. We use Trausty as that's the latest we can use. And it's better
# supported by the whole range of C++ toolsets we like to test on.
dist: trusty
os: linux
# Because we install our own toolsets and other software we need
# to run the sudo support.
sudo: required
# Travis has a long standing bug with their rather complicated
# build matrix evaluation that causes empty jobs to be created.
# This global matrix entry in combination with the exclusion
# below works around that bug. This is the suggested fix from
# the Travis support people.
env:
matrix:
- TRAVIS_EMPTY_JOB_WORKAROUND=true
# This lists all the toolsets we will test with the Boost CI
# scripts. Predef needs to check all of them as its job is to
# distiguish between all of them. For other libraries you would
# want to limit the list to the toolsets that are important
# for that.
matrix:
exclude:
- env: TRAVIS_EMPTY_JOB_WORKAROUND=true
include:
- env: TOOLSET=clang-3.4
- env: TOOLSET=clang-3.5
- env: TOOLSET=clang-3.6
- env: TOOLSET=clang-3.7
- env: TOOLSET=clang-3.8
- env: TOOLSET=clang-3.9
- env: TOOLSET=gcc-4.7
- env: TOOLSET=gcc-4.8
- env: TOOLSET=gcc-4.9
- env: TOOLSET=gcc-5
- env: TOOLSET=gcc-6
- env: TOOLSET=xcode-6.1
os: osx
- env: TOOLSET=xcode-6.4
os: osx
osx_image: xcode6.4
- env: TOOLSET=xcode-7.3
os: osx
osx_image: xcode7.3
- env: TOOLSET=xcode-8.0
os: osx
osx_image: xcode8
# These are the standard steps to bootstrap the Boost CI scripts
# and to forward the actions to the scripts.
before_install:
# Fetch the scripts to do the actual building/testing.
- |
wget "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/ci_boost_common.py" -P ..
wget "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/ci_boost_library_test.py" -P ..
install: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" install
before_script: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" before_script
script: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" script
before_cache: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" before_cache
after_success: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" after_success
after_failure: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" after_failure
after_script: python "${TRAVIS_BUILD_DIR}/../ci_boost_library_test.py" after_script
cache:
directories:
- $HOME/boostorg/boost

38
CMakeLists.txt Normal file
View File

@ -0,0 +1,38 @@
# Copyright Mike Dev 2018
# Copyright Rene Rivera 2018
# 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
# NOTE:
# CMake support for Boost.Predef is currently experimental at best and the
# interface is likely to change in the future
#
# This file provides minimal cmake support (no unit-tests,
# no installation) for integration into a "host" cmake project
# via the "add_subdirectory( <path-to-boost-predef> )" command.
#
# Other cmake targets can then use the public target name
# "Boost::predef" in order to express their dependency
# on this library. I.e:
#
# target_link_libraries( <my-exe/lib> PUBLIC Boost::predef )
# Only need the basic minimum of project, add_library, and
# target_include_directories commands.
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 LANGUAGES NONE )
# Simple INTERFACE, and header only, library target.
add_library( boost_predef INTERFACE )
# The only usage requirement is include dir for consumers.
target_include_directories( boost_predef INTERFACE include )
# Add an alias to be compatible with consumers that may have used the
# FindBoost script.
add_library( Boost::predef ALIAS boost_predef )

View File

@ -1,72 +0,0 @@
# Use, modification, and distribution are
# subject to 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)
#
# Copyright Rene Rivera 2015-2016.
# Set up notifications so that the maintainers of the library get
# build status messages.
notifications:
- provider: Email
to:
- grafikrobot@gmail.com
on_build_status_changed: true
# This lists all the toolsets we will test with the Boost CI
# scripts. Predef needs to check all of them as its job is to
# distiguish between all of them. For other libraries you would
# want to limit the list to the toolsets that are important
# for that.
#
# This also includes setting up how to create the cache. We
# opt for slightly better compression and solid archives.
# As we have a lot of files in the boost tree which is what
# we are putting in the cache.
environment:
APPVEYOR_CACHE_ENTRY_ZIP_ARGS: -t7z -m0=lzma2 -mx=3
matrix:
- TOOLSET: vs-2008
platform: 32
- TOOLSET: vs-2010
platform: 32
- TOOLSET: vs-2012
platform: 32
- TOOLSET: vs-2013
platform: 32
- TOOLSET: vs-2013
platform: 64
- TOOLSET: vs-2015
platform: 32
- TOOLSET: vs-2015
platform: 64
# We can also set up configurations for testing which map to
# the b2 build variants.
configuration:
- debug
- release
# These are the standard steps to bootstrap the Boost CI scripts
# and to forward the actions to the scripts.
init:
# Fetch the scripts to do the actual building/testing.
- cd %APPVEYOR_BUILD_FOLDER%/..
- appveyor DownloadFile "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/ci_boost_common.py"
- appveyor DownloadFile "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/ci_boost_library_test.py"
- cd %APPVEYOR_BUILD_FOLDER%
install: python ../ci_boost_library_test.py install
before_build: python ../ci_boost_library_test.py before_build
build_script: python ../ci_boost_library_test.py build_script
after_build: python ../ci_boost_library_test.py after_build
before_test: python ../ci_boost_library_test.py before_test
test_script: python ../ci_boost_library_test.py test_script
after_test: python ../ci_boost_library_test.py after_test
on_success: python ../ci_boost_library_test.py on_success
on_failure: python ../ci_boost_library_test.py on_failure
on_finish: python ../ci_boost_library_test.py on_finish
# We cache the boost repo, which is cleaned before caching.
# This saves some time as cloning the git submodules fresh
# takes a few minutes on Windows.
cache:
- C:\projects\boostorg\boost -> appveyor.yml

226
azure-pipelines.yml Normal file
View File

@ -0,0 +1,226 @@
# Use, modification, and distribution are
# subject to 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)
#
# Copyright Rene Rivera 2019-2020.
trigger:
branches:
include:
- develop
- master
- feature/*
pr:
branches:
include:
- develop
variables:
AZP: 1
AZP_REPO_DIR: $(Build.Repository.LocalPath)
AZP_BRANCH: $(Build.SourceBranch)
AZP_BRANCH_NAME: $(Build.SourceBranchName)
AZP_COMMIT: $(Build.SourceVersion)
AZP_REPO: $(Build.Repository.Name)
AZP_PULL_REQUEST: $(System.PullRequest.PullRequestNumber)
stages:
- stage: Test
jobs:
- job: 'Linux'
strategy:
matrix:
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
./tools/ci/linux-cxx-install.sh
displayName: 'Install CXX'
- bash: |
set -e
pushd ${HOME}
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
displayName: 'Install B2'
- bash: |
set -e
CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
pushd test
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.1:
TOOLSET: clang
CXX: clang++
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.2.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_11.2.1.app
VM_IMAGE: 'macOS-10.15'
Xcode 10.3:
TOOLSET: clang
CXX: clang++
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.1:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_10.1.app
VM_IMAGE: 'macOS-10.14'
Xcode 10.0:
TOOLSET: clang
CXX: clang++
XCODE_APP: /Applications/Xcode_10.app
VM_IMAGE: 'macOS-10.14'
pool:
vmImage: $(VM_IMAGE)
steps:
- bash: |
set -e
uname -a
sudo xcode-select -switch ${XCODE_APP}
which clang++
clang++ --version
displayName: 'Install CXX'
- bash: |
set -e
pushd ${HOME}
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
displayName: 'Install B2'
- bash: |
set -e
CXX_PATH=`which ${CXX}`
echo "using ${TOOLSET} : : ${CXX_PATH} ;" > ${HOME}/user-config.jam
pushd test
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: 'Windows'
strategy:
matrix:
VS 2019:
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=32,64 cxxstd=14,latest
VM_IMAGE: 'windows-2019'
VS 2019 (UWP DESKTOP):
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
VM_IMAGE: 'windows-2019'
VS 2019 (UWP PHONE):
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP
VM_IMAGE: 'windows-2019'
VS 2019 (UWP STORE):
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
VM_IMAGE: 'windows-2019'
VS 2019 (UWP SERVER):
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SERVER
VM_IMAGE: 'windows-2019'
VS 2019 (UWP SYSTEM):
TOOLSET: msvc
TOOLSET_VERSION: 14.2
B2_ARGS: address-model=64 define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_SYSTEM
VM_IMAGE: 'windows-2019'
VS 2017:
TOOLSET: msvc
TOOLSET_VERSION: 14.1
VM_IMAGE: 'vs2017-win2016'
MinGW 8.1.0:
TOOLSET: gcc
VM_IMAGE: 'windows-2019'
MinGW 8.1.0 (UWP DESKTOP):
TOOLSET: gcc
B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP
VM_IMAGE: 'windows-2019'
MinGW 8.1.0 (UWP STORE):
TOOLSET: gcc
B2_ARGS: define=_WIN32_WINNT=0x0A00 define=WINAPI_FAMILY=WINAPI_FAMILY_PC_APP
VM_IMAGE: 'windows-2019'
pool:
vmImage: $(VM_IMAGE)
steps:
- script: |
cd %BUILD_SOURCESDIRECTORY%/..
curl "https://github.com/boostorg/build/archive/develop.zip" -L -o b2.zip
displayName: Download B2
- task: ExtractFiles@1
inputs:
archiveFilePatterns: $(Build.SourcesDirectory)/../b2.zip
destinationFolder: $(Build.SourcesDirectory)/..
cleanDestinationFolder: false
displayName: Extract B2
- script: |
echo using %TOOLSET% ^: %TOOLSET_VERSION% ^; > %HOMEDRIVE%%HOMEPATH%/user-config.jam
cd %BUILD_SOURCESDIRECTORY%/../build-develop
cmd.exe /c bootstrap.bat
displayName: Install B2
- script: |
set BOOST_BUILD_PATH=%BUILD_SOURCESDIRECTORY%/../build-develop
cd %BUILD_SOURCESDIRECTORY%/test
%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,6 +1,43 @@
# Copyright Rene Rivera 2014
# Copyright Rene Rivera 2014-2019
# 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)
#|
This B2 project provides support for using the Predef library externally as
a standalone project or by embedding in your B2 project tree. To use
externally you would need a `use-project` declaration and to use the
project as a dependency where needed:
----
use-project /hash-predef : /path/to/hash-predef/root ;
exe my_thing : main.cpp : <dependency>/hash-predef ;
----
To use in your project tree you would only need to place the Predef tree
in a subdirectory and reference the project location as a dependency where
needed.
----
exe my_thin : main.cpp : <dependency>libs/hash-predef ;
----
|#
import project ;
path-constant BOOST_PREDEF_ROOT : . ;
path-constant BOOST_PREDEF_INCLUDE : include ;
constant PREDEF_DIST : boost ;
project /boost/predef
: usage-requirements
<include>$(BOOST_PREDEF_INCLUDE) ;
if [ project.is-jamroot-module $(__name__) ]
{
local attributes = [ project.attributes $(__name__) ] ;
$(attributes).set "build-dir" : .bin ;
}
alias libs ;

1
doc/.gitignore vendored
View File

@ -1 +0,0 @@
/html/

View File

@ -1,100 +1,38 @@
# Copyright Rene Rivera 2011-2016
# 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)
#|
Copyright Rene Rivera 2011-2019
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)
|#
using quickbook ;
using boostbook ;
import asciidoctor ;
import modules ;
import path ;
if ! $(BOOST_ROOT)
{
BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;
}
project predefdoc ;
if $(BOOST_PREDEF_ROOT)
{
path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ;
}
else
{
path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ;
}
path-constant PYGMENTS_DIR : . ;
local BOOST_PREDEF_HEADERS = [ path.glob-tree $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef : *.h ] ;
doc-dir = [ MATCH "--doc-dir=(.*)" : [ modules.peek : ARGV ] ] ;
doc-dir ?= . ;
# Intermediate targets..
local headers = [ glob-tree-ex $(BOOST_PREDEF_INCLUDE) : *.h ] ;
# Quickbok to boostbook target.
xml predef
html index : predef.adoc :
:
predef.qbk
:
<dependency>$(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h
<dependency>$(BOOST_PREDEF_HEADERS)
<flags>--require=$(PYGMENTS_DIR)/pygments_init.rb
<flags>--trace
<flags>--verbose
<dependency>$(PYGMENTS_DIR)/pygments_init.rb
<dependency>$(headers)
;
explicit predef ;
explicit index ;
# HTML dependencies for standalone docs.
install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : <location>html/images ;
explicit images ;
install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : <location>html/images/callouts ;
explicit callouts ;
install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : <location>html ;
explicit css ;
install html : index : <location>$(doc-dir) ;
explicit html ;
# Default target builds standalone docs.
boostbook standalone
:
predef
:
<xsl:param>boost.root=../../../..
#<xsl:param>generate.section.toc.level=3
<xsl:param>chunk.section.depth=2
<xsl:param>chunk.first.sections=1
<dependency>images
<dependency>callouts
<dependency>css
;
###############################################################################
### Targets for Boost release integration.
###############################################################################
# Target for Boost global documentation integration.
#
# For documentation that will be integrated into the global documentation
# this should be an alias similar to:
#
# alias boostdoc : my_lib : : : <implicit-dependency>my_lib_boostbook_xml ;
# explicit boostdoc ;
#
# For documentation that is not part of the global documentation, i.e.
# it has stadalone documentation, it should be an empty alias:
#
# alias boostdoc ;
# explicit boostdoc ;
#
alias boostdoc : predef ;
alias boostdoc ;
explicit boostdoc ;
# Target for Boost standalone release documentation building.
#
# For documentation that is not part of the global Boost documentation
# this should be an alias to building the "standalone" documentation.
# Usual this is just an alias to a "stadalone" target:
#
# alias boostrelease : stadalone ;
# explicit boostrelease ;
#
# For documentation that is part of the global Boost documentation this
# should be an empty alias:
#
# alias boostrelease ;
# explicit boostrelease ;
#
alias boostrelease ;
alias boostrelease : html ;
explicit boostrelease ;
###############################################################################

View File

@ -1,89 +0,0 @@
SIMD predefs depend on compiler options. For example, you will have to add the
option `-msse3` to clang or gcc to enable SSE3. SIMD predefs are also inclusive.
This means that if SSE3 is enabled, then every other extensions with a lower
version number will implicitly be enabled and detected. However, some extensions
are CPU specific, they may not be detected nor enabled when an upper version is
enabled.
[note SSE(1) and SSE2 are automatically enabled by default when using x86-64
architecture.]
To check if any SIMD extension has been enabled, you can use:
``
#include <boost/predef/hardware/simd.h>
#include <iostream>
int main()
{
#if defined(BOOST_HW_SIMD_AVAILABLE)
std::cout << "SIMD detected!" << std::endl;
#endif
return 0;
}
``
When writing SIMD specific code, you may want to check if a particular extension
has been detected. To do so you have to use the right architecture predef and
compare it. Those predef are of the form `BOOST_HW_SIMD_"ARCH"` (where `"ARCH"`
is either `ARM`, `PPC`, or `X86`). For example, if you compile code for x86
architecture, you will have to use `BOOST_HW_SIMD_X86`. Its value will be the
version number of the most recent SIMD extension detected for the architecture.
To check if an extension has been enabled:
``
#include <boost/predef/hardware/simd.h>
#include <iostream>
int main()
{
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION
std::cout << "This is SSE3!" << std::endl;
#endif
return 0;
}
``
[note The *_VERSION* defines that map version number to actual real
identifiers. This way it is easier to write comparisons without messing up with
version numbers.]
To *"stricly"* check the most recent detected extension:
``
#include <boost/predef/hardware/simd.h>
#include <iostream>
int main()
{
#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION
std::cout << "This is SSE3 and this is the most recent enabled extension!"
<< std::endl;
#endif
return 0;
}
``
Because of the version systems of predefs and of the inclusive property of SIMD
extensions macros, you can easily check for ranges of supported extensions:
``
#include <boost/predef/hardware/simd.h>
#include <iostream>
int main()
{
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\
BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION
std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl;
#endif
return 0;
}
``
[note Unlike gcc and clang, Visual Studio does not allow you to specify precisely
the SSE variants you want to use, the only detections that will take place are
SSE, SSE2, AVX and AVX2. For more informations,
see [@https://msdn.microsoft.com/en-us/library/b0084kay.aspx here].]

135
doc/history.adoc Normal file
View File

@ -0,0 +1,135 @@
////
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)
////
= 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)
* Add RISC-V endian detection. (from Thomas Petazzoni)
* Convert documentation to AsciiDoctor format.
* Document correct versions for C++ standard.
* Fix compile error from not available header when building in WinCE.
* Remove deprecated `BOOST_OS_ANDROID`.
* Fix compile for Wine. (Kevin Puetz)
== 1.10
* Fix bad include of sub-BSD os headers from main BSD header.
* Fix use of deprecated `TARGET_IPHONE_SIMULATOR` instead of newer
`TARGET_OS_SIMULATOR`.
* Add `BOOST_PLAT_ANDROID` to resolve conflict between Linux and Android
OS predefs. The `BOOST_OS_ANDROID` predef is now deprecated and will be
removed in a future release.
* Add support for consuming Predef as a CMake project.
* Add support for consuming Predef as a standalone B2 project.
== 1.9
* Fixes for `BOOST_COMP_NVCC*` predefs. (from Benjamin Worpitz)
* Add specific version information for Cygwin OS predef. (from James E. King III)
== 1.8
* Add support for __ARM_ARCH macro. (from Tim Blechmann)
* Add detection for PTX architecture. (from Benjamin Worpitz)
* Add nvcc compiler detection. (from Benjamin Worpitz)
* Add support for detecting CUDA. (from Benjamin Worpitz)
* Remove reference to obsolete BOOST_ARCH_AMD64. (from Peter Kolbus)
== 1.7
* Fix BOOST_ARCH_PARISK/BOOST_ARCH_PARISC typo.
* Improved Windows Universal Platform detection. (from James E. King, III)
* Add detection for CloudABI with cloudlibc. (from James E. King, III)
== 1.6
* Fix Intel C/{CPP} version 9999 detection to be 12.1.0.
* Addition of `BOOST_PREDEF_WORKAROUND` and `BOOST_PREDEF_TESTED_AT` macros
for defect workarounds and detection.
* Add ARM64 MSVC SIMD detection. (from Minmin Gong)
* Add detection of iOS simulator vs device as a platform choice. (from Ruslan
Baratov)
* Fix MinGW incorrect header guard. (from Ruslan Baratov)
== 1.5
* Fix Intel C/{CPP} compiler version specification.
* Add `BOOST_VERSION_NUMBER_MAJOR`, `BOOST_VERSION_NUMBER_MINOR`,
`BOOST_VERSION_NUMBER_PATCH` macros to extract components from valid version
numbers.
* Change VS version numbering. Version after VS2015 will use the compiler
version instead of the varied product versions.
== 1.4.1
* Small fixes for some redefinition errors, and mispelled macros.
* Slightly rearrangement of structure to comply with current library requirements.
== 1.4
* Add detection of SIMD hardware. With the addition of the `BOOST_HW_*`
category (from Charly Chevalier).
* Add compile only version of check utilities to address cross-compile
use cases. And changed the BBv2 check support to use compile only checks.
* Fix test warnings.
* Fix typos on `AVAILABLE` macros for Windows Platform. (from Vemund Handeland)
== 1.3
* Fix many problems with `predef_check` functionality.
* Update SunPro detection to accommodate latest version of compiler from Oracle.
* Addition of Travis-CI and Appveyor testing.
* Add `and` and `or` logical operators for `predef_check` expression on the Boost Build side.
* Fix `BOOST_ARCH_PARISC` to correctly spelled name (from Graham Hanson).
* Fix `MAKE_YYYYM` macros to correctly limit the month (from rick68).
== 1.2
* Account for skip in Visual Studio product version vs. compiler version.
This supports version of VS 2015 an onward.
* Add detection of Haiku OS (from Jessica Hamilton).
* Some fixes to endian detection for Android (from mstahl-at-redhat.com).
* Add missing `BOOST_PREDEF_MAKE_0X_VVRRPP` macro (from Erik Lindahl).
* Add `predef_check` program and BBv2 integration for build configuration
checks.
== 1.1
* Addition of `BOOST_PLAT_*` platform definitions for MinGW and
Windows platform variants.
* Detection of ARM architecture for Windows compilers to target
mobile devices of Windows 8.
* Improved ARM detection for 64 bit ARM.
* Added detection of iOS an an operating system.
* Improved detection of endianess on some platforms.
* Addition of exclusive plus emulated definitions for platform
and compiler detection.
WARNING: The big change for this version is the restructuring of the
definitions to avoid duplicate definitions in one category. That is, only one
`BOOST_OS_*`, `BOOST_COMP_*`, and `BOOST_PLAT_*` variant will be detected
(except for sub-categories).

View File

@ -1,69 +0,0 @@
[/
Copyright 2014-2016 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)
]
[section History]
[heading 1.5]
* Fix Intel C/C++ compiler version specification.
* Add `BOOST_VERSION_NUMBER_MAJOR`, `BOOST_VERSION_NUMBER_MINOR`,
`BOOST_VERSION_NUMBER_PATCH` macros to extract components from valid version
numbers.
* Change VS version numbering. Version after VS2015 will use the compiler
version instead of the varied product versions.
[heading 1.4.1]
* Small fixes for some redefinition errors, and mispelled macros.
* Slightly rearrangement of structure to comply with current library requirements.
[heading 1.4]
* Add detection of SIMD hardware. With the addition of the `BOOST_HW_*`
category (from Charly Chevalier).
* Add compile only version of check utilities to address cross-compile
use cases. And changed the BBv2 check support to use compile only checks.
* Fix test warnings.
* Fix typos on `AVAILABLE` macros for Windows Platform. (from Vemund Handeland)
[heading 1.3]
* Fix many problems with `predef_check` functionality.
* Update SunPro detection to accomodate latest version of compiler from Oracle.
* Addition of Travis-CI and Appveyor testing.
* Add `and` and `or` logical operators for `predef_check` expression on the Boost Build side.
* Fix `BOOST_ARCH_PARISC` to correctly spelled name (from Graham Hanson).
* Fix `MAKE_YYYYM` macros to correctly limit the month (from rick68).
[heading 1.2]
* Account for skip in Visual Studio product version vs. compiler version.
This supports version of VS 2015 an onward.
* Add detection of Haiku OS (from Jessica Hamilton).
* Some fixes to endian detection for Android (from mstahl-at-redhat.com).
* Add missing `BOOST_PREDEF_MAKE_0X_VVRRPP` macro (from Erik Lindahl).
* Add `predef_check` program and BBv2 integration for build configuration
checks.
[heading 1.1]
* Addition of `BOOST_PLAT_*` platform definitions for MinGW and
Windows platform variants.
* Detection of ARM architecture for Windows compilers to target
mobile devices of Windows 8.
* Improved ARM detection for 64 bit ARM.
* Added detection of iOS an an operating system.
* Improved detection of endianess on some platforms.
* Addition of exclusive plus emulated definitions for platform
and compiler detection.
[warning The big change for this version is the restructuring of the
definitions to avoid duplicate definitions in one category. That is, only one
`BOOST_OS_*`, `BOOST_COMP_*`, and `BOOST_PLAT_*` variant will be detected
(except for sub-categories).]
[endsect]

7316
doc/index.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

45
doc/predef.css Normal file
View File

@ -0,0 +1,45 @@
/*
Copyright 2018-2019 Rene Rivera
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
*/
.admonitionblock .icon .title {
font-size: 2.5em;
text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);
}
.caution .icon .title {
color: rgba(192, 51, 0, 1);
}
.important .icon .title {
color: rgba(192, 0, 0, 1);
}
.note .icon .title {
color: rgba(26, 64, 128, 1);
}
.tip .icon .title {
color: rgba(255, 192, 0, 1);
}
.warning .icon .title {
color: rgba(192, 102, 0, 1);
}
p,blockquote,dt,td.content,span.alt {
font-size: 1.1rem
}
h1, h2, h3, h4, h5, h6 {
font-weight: bold;
}
h1 {
font-size: 2.25em;
}
h2 {
font-size: 1.5em;
}
h3,#toctitle,.sidebarblock>.content>.title {
font-size: 1.3em;
}
h4, h5 {
font-size: 1.2em;
}
h6 {
font-size: 1.1em;
}

11
doc/pygments_init.rb Normal file
View File

@ -0,0 +1,11 @@
=begin
Copyright 2018 Rene Rivera
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.txt or http://www.boost.org/LICENSE_1_0.txt)
=end
require 'pygments'
# Need to create/register non-builtin lexers even if they are global plugins.
Pygments::Lexer.create name: 'Jam', aliases: ['jam','bjam','b2'],
filenames: ['*.jam','Jamfile','Jamroot'], mimetypes: ['text/x-jam']

View File

@ -1,13 +1,10 @@
[/
Copyright 2014 Rene Rivera
////
Copyright 2014-2017 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)
]
////
[section To Do]
= To Do
* Improve reference documentation.
* Provide BOOST_WORKAROUND style macros for public use.
[endsect]

View File

@ -1,11 +0,0 @@
// Copyright 2013 Rene Rivera
// Distributed under the Boost Software License, Version 1.0. (See accompany-
// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_DETAIL_ENDIAN_HPP
#define BOOST_DETAIL_ENDIAN_HPP
// Use the Predef library for the detection of endianess.
#include <boost/predef/detail/endian_compat.h>
#endif

View File

@ -14,12 +14,15 @@ 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>
#include <boost/predef/architecture/parisc.h>
#include <boost/predef/architecture/ppc.h>
#include <boost/predef/architecture/ptx.h>
#include <boost/predef/architecture/pyramid.h>
#include <boost/predef/architecture/riscv.h>
#include <boost/predef/architecture/rs6k.h>
#include <boost/predef/architecture/sparc.h>
#include <boost/predef/architecture/superh.h>
@ -27,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

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_ALPHA`]
/* tag::reference[]
= `BOOST_ARCH_ALPHA`
[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture.
http://en.wikipedia.org/wiki/DEC_Alpha[DEC Alpha] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[[`__alpha__`] [__predef_detection__]]
[[`__alpha`] [__predef_detection__]]
[[`_M_ALPHA`] [__predef_detection__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__alpha__+` | {predef_detection}
| `+__alpha+` | {predef_detection}
| `+_M_ALPHA+` | {predef_detection}
[[`__alpha_ev4__`] [4.0.0]]
[[`__alpha_ev5__`] [5.0.0]]
[[`__alpha_ev6__`] [6.0.0]]
]
*/
| `+__alpha_ev4__+` | 4.0.0
| `+__alpha_ev5__+` | 5.0.0
| `+__alpha_ev6__+` | 6.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -51,6 +52,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -1,5 +1,5 @@
/*
Copyright Rene Rivera 2008-2015
Copyright Rene Rivera 2008-2019
Copyright Franz Detro 2014
Copyright (c) Microsoft Corporation 2014
Distributed under the Boost Software License, Version 1.0.
@ -13,36 +13,77 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_ARM`]
/* tag::reference[]
= `BOOST_ARCH_ARM`
[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture.
http://en.wikipedia.org/wiki/ARM_architecture[ARM] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__arm__`] [__predef_detection__]]
[[`__arm64`] [__predef_detection__]]
[[`__thumb__`] [__predef_detection__]]
[[`__TARGET_ARCH_ARM`] [__predef_detection__]]
[[`__TARGET_ARCH_THUMB`] [__predef_detection__]]
[[`_M_ARM`] [__predef_detection__]]
| `+__ARM_ARCH+` | {predef_detection}
| `+__TARGET_ARCH_ARM+` | {predef_detection}
| `+__TARGET_ARCH_THUMB+` | {predef_detection}
| `+_M_ARM+` | {predef_detection}
| `+__arm__+` | {predef_detection}
| `+__arm64+` | {predef_detection}
| `+__thumb__+` | {predef_detection}
| `+_M_ARM64+` | {predef_detection}
| `+__aarch64__+` | {predef_detection}
| `+__AARCH64EL__+` | {predef_detection}
| `+__ARM_ARCH_7__+` | {predef_detection}
| `+__ARM_ARCH_7A__+` | {predef_detection}
| `+__ARM_ARCH_7R__+` | {predef_detection}
| `+__ARM_ARCH_7M__+` | {predef_detection}
| `+__ARM_ARCH_6K__+` | {predef_detection}
| `+__ARM_ARCH_6Z__+` | {predef_detection}
| `+__ARM_ARCH_6KZ__+` | {predef_detection}
| `+__ARM_ARCH_6T2__+` | {predef_detection}
| `+__ARM_ARCH_5TE__+` | {predef_detection}
| `+__ARM_ARCH_5TEJ__+` | {predef_detection}
| `+__ARM_ARCH_4T__+` | {predef_detection}
| `+__ARM_ARCH_4__+` | {predef_detection}
[[`__arm64`] [8.0.0]]
[[`__TARGET_ARCH_ARM`] [V.0.0]]
[[`__TARGET_ARCH_THUMB`] [V.0.0]]
[[`_M_ARM`] [V.0.0]]
]
*/
| `+__ARM_ARCH+` | V.0.0
| `+__TARGET_ARCH_ARM+` | V.0.0
| `+__TARGET_ARCH_THUMB+` | V.0.0
| `+_M_ARM+` | V.0.0
| `+__arm64+` | 8.0.0
| `+_M_ARM64+` | 8.0.0
| `+__aarch64__+` | 8.0.0
| `+__AARCH64EL__+` | 8.0.0
| `+__ARM_ARCH_7__+` | 7.0.0
| `+__ARM_ARCH_7A__+` | 7.0.0
| `+__ARM_ARCH_7R__+` | 7.0.0
| `+__ARM_ARCH_7M__+` | 7.0.0
| `+__ARM_ARCH_6K__+` | 6.0.0
| `+__ARM_ARCH_6Z__+` | 6.0.0
| `+__ARM_ARCH_6KZ__+` | 6.0.0
| `+__ARM_ARCH_6T2__+` | 6.0.0
| `+__ARM_ARCH_5TE__+` | 5.0.0
| `+__ARM_ARCH_5TEJ__+` | 5.0.0
| `+__ARM_ARCH_4T__+` | 4.0.0
| `+__ARM_ARCH_4__+` | 4.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
defined(_M_ARM)
#if \
defined(__ARM_ARCH) || defined(__TARGET_ARCH_ARM) || \
defined(__TARGET_ARCH_THUMB) || defined(_M_ARM) || \
defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
defined(_M_ARM64) || defined(__aarch64__) || defined(__AARCH64EL__) || \
defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) || \
defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) || \
defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__)
# undef BOOST_ARCH_ARM
# if !defined(BOOST_ARCH_ARM) && defined(__arm64)
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0)
# if !defined(BOOST_ARCH_ARM) && defined(__ARM_ARCH)
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__ARM_ARCH,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM)
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0)
@ -53,6 +94,29 @@ http://www.boost.org/LICENSE_1_0.txt)
# if !defined(BOOST_ARCH_ARM) && defined(_M_ARM)
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(_M_ARM,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && ( \
defined(__arm64) || defined(_M_ARM64) || defined(__aarch64__) || \
defined(__AARCH64EL__) )
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && ( \
defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) )
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(7,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && ( \
defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) )
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(6,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && ( \
defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) )
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(5,0,0)
# endif
# if !defined(BOOST_ARCH_ARM) && ( \
defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__) )
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(4,0,0)
# endif
# if !defined(BOOST_ARCH_ARM)
# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE
# endif
@ -62,6 +126,16 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_BLACKFIN`]
/* tag::reference[]
= `BOOST_ARCH_BLACKFIN`
Blackfin Processors from Analog Devices.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__bfin__`] [__predef_detection__]]
[[`__BFIN__`] [__predef_detection__]]
[[`bfin`] [__predef_detection__]]
[[`BFIN`] [__predef_detection__]]
]
*/
| `+__bfin__+` | {predef_detection}
| `+__BFIN__+` | {predef_detection}
| `bfin` | {predef_detection}
| `BFIN` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -38,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

@ -11,23 +11,24 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_CONVEX`]
/* tag::reference[]
= `BOOST_ARCH_CONVEX`
[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture.
http://en.wikipedia.org/wiki/Convex_Computer[Convex Computer] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__convex__`] [__predef_detection__]]
| `+__convex__+` | {predef_detection}
[[`__convex_c1__`] [1.0.0]]
[[`__convex_c2__`] [2.0.0]]
[[`__convex_c32__`] [3.2.0]]
[[`__convex_c34__`] [3.4.0]]
[[`__convex_c38__`] [3.8.0]]
]
*/
| `+__convex_c1__+` | 1.0.0
| `+__convex_c2__+` | 2.0.0
| `+__convex_c32__+` | 3.2.0
| `+__convex_c34__+` | 3.4.0
| `+__convex_c38__+` | 3.8.0
|===
*/ // end::reference[]
#define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -57,6 +58,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_IA64`]
/* tag::reference[]
= `BOOST_ARCH_IA64`
[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture.
http://en.wikipedia.org/wiki/Ia64[Intel Itanium 64] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__ia64__`] [__predef_detection__]]
[[`_IA64`] [__predef_detection__]]
[[`__IA64__`] [__predef_detection__]]
[[`__ia64`] [__predef_detection__]]
[[`_M_IA64`] [__predef_detection__]]
[[`__itanium__`] [__predef_detection__]]
]
*/
| `+__ia64__+` | {predef_detection}
| `+_IA64+` | {predef_detection}
| `+__IA64__+` | {predef_detection}
| `+__ia64+` | {predef_detection}
| `+_M_IA64+` | {predef_detection}
| `+__itanium__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -41,6 +42,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,37 +11,38 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_M68K`]
/* tag::reference[]
= `BOOST_ARCH_M68K`
[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture.
http://en.wikipedia.org/wiki/M68k[Motorola 68k] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__m68k__`] [__predef_detection__]]
[[`M68000`] [__predef_detection__]]
| `+__m68k__+` | {predef_detection}
| `M68000` | {predef_detection}
[[`__mc68060__`] [6.0.0]]
[[`mc68060`] [6.0.0]]
[[`__mc68060`] [6.0.0]]
[[`__mc68040__`] [4.0.0]]
[[`mc68040`] [4.0.0]]
[[`__mc68040`] [4.0.0]]
[[`__mc68030__`] [3.0.0]]
[[`mc68030`] [3.0.0]]
[[`__mc68030`] [3.0.0]]
[[`__mc68020__`] [2.0.0]]
[[`mc68020`] [2.0.0]]
[[`__mc68020`] [2.0.0]]
[[`__mc68010__`] [1.0.0]]
[[`mc68010`] [1.0.0]]
[[`__mc68010`] [1.0.0]]
[[`__mc68000__`] [0.0.1]]
[[`mc68000`] [0.0.1]]
[[`__mc68000`] [0.0.1]]
]
*/
| `+__mc68060__+` | 6.0.0
| `mc68060` | 6.0.0
| `+__mc68060+` | 6.0.0
| `+__mc68040__+` | 4.0.0
| `mc68040` | 4.0.0
| `+__mc68040+` | 4.0.0
| `+__mc68030__+` | 3.0.0
| `mc68030` | 3.0.0
| `+__mc68030+` | 3.0.0
| `+__mc68020__+` | 2.0.0
| `mc68020` | 2.0.0
| `+__mc68020+` | 2.0.0
| `+__mc68010__+` | 1.0.0
| `mc68010` | 1.0.0
| `+__mc68010+` | 1.0.0
| `+__mc68000__+` | 0.0.1
| `mc68000` | 0.0.1
| `+__mc68000+` | 0.0.1
|===
*/ // end::reference[]
#define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -74,6 +75,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,30 +11,31 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_MIPS`]
/* tag::reference[]
= `BOOST_ARCH_MIPS`
[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture.
http://en.wikipedia.org/wiki/MIPS_architecture[MIPS] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__mips__`] [__predef_detection__]]
[[`__mips`] [__predef_detection__]]
[[`__MIPS__`] [__predef_detection__]]
| `+__mips__+` | {predef_detection}
| `+__mips+` | {predef_detection}
| `+__MIPS__+` | {predef_detection}
[[`__mips`] [V.0.0]]
[[`_MIPS_ISA_MIPS1`] [1.0.0]]
[[`_R3000`] [1.0.0]]
[[`_MIPS_ISA_MIPS2`] [2.0.0]]
[[`__MIPS_ISA2__`] [2.0.0]]
[[`_R4000`] [2.0.0]]
[[`_MIPS_ISA_MIPS3`] [3.0.0]]
[[`__MIPS_ISA3__`] [3.0.0]]
[[`_MIPS_ISA_MIPS4`] [4.0.0]]
[[`__MIPS_ISA4__`] [4.0.0]]
]
*/
| `+__mips+` | V.0.0
| `+_MIPS_ISA_MIPS1+` | 1.0.0
| `+_R3000+` | 1.0.0
| `+_MIPS_ISA_MIPS2+` | 2.0.0
| `+__MIPS_ISA2__+` | 2.0.0
| `+_R4000+` | 2.0.0
| `+_MIPS_ISA_MIPS3+` | 3.0.0
| `+__MIPS_ISA3__+` | 3.0.0
| `+_MIPS_ISA_MIPS4+` | 4.0.0
| `+__MIPS_ISA4__+` | 4.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -65,6 +66,16 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,28 +11,29 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_PARISK`]
/* tag::reference[]
= `BOOST_ARCH_PARISC`
[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
http://en.wikipedia.org/wiki/PA-RISC_family[HP/PA RISC] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__hppa__`] [__predef_detection__]]
[[`__hppa`] [__predef_detection__]]
[[`__HPPA__`] [__predef_detection__]]
| `+__hppa__+` | {predef_detection}
| `+__hppa+` | {predef_detection}
| `+__HPPA__+` | {predef_detection}
[[`_PA_RISC1_0`] [1.0.0]]
[[`_PA_RISC1_1`] [1.1.0]]
[[`__HPPA11__`] [1.1.0]]
[[`__PA7100__`] [1.1.0]]
[[`_PA_RISC2_0`] [2.0.0]]
[[`__RISC2_0__`] [2.0.0]]
[[`__HPPA20__`] [2.0.0]]
[[`__PA8000__`] [2.0.0]]
]
*/
| `+_PA_RISC1_0+` | 1.0.0
| `+_PA_RISC1_1+` | 1.1.0
| `+__HPPA11__+` | 1.1.0
| `+__PA7100__+` | 1.1.0
| `+_PA_RISC2_0+` | 2.0.0
| `+__RISC2_0__+` | 2.0.0
| `+__HPPA20__+` | 2.0.0
| `+__PA8000__+` | 2.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -56,6 +57,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,40 +11,49 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_PPC`]
/* tag::reference[]
= `BOOST_ARCH_PPC`
[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture.
http://en.wikipedia.org/wiki/PowerPC[PowerPC] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__powerpc`] [__predef_detection__]]
[[`__powerpc__`] [__predef_detection__]]
[[`__POWERPC__`] [__predef_detection__]]
[[`__ppc__`] [__predef_detection__]]
[[`_M_PPC`] [__predef_detection__]]
[[`_ARCH_PPC`] [__predef_detection__]]
[[`__PPCGECKO__`] [__predef_detection__]]
[[`__PPCBROADWAY__`] [__predef_detection__]]
[[`_XENON`] [__predef_detection__]]
| `+__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]]
[[`__ppc603__`] [6.3.0]]
[[`_ARCH_603`] [6.3.0]]
[[`__ppc604__`] [6.4.0]]
[[`__ppc604__`] [6.4.0]]
]
*/
| `+__ppc601__+` | 6.1.0
| `+_ARCH_601+` | 6.1.0
| `+__ppc603__+` | 6.3.0
| `+_ARCH_603+` | 6.3.0
| `+__ppc604__+` | 6.4.0
| `+__ppc604__+` | 6.4.0
|===
*/ // end::reference[]
#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)
@ -66,7 +75,50 @@ http://www.boost.org/LICENSE_1_0.txt)
#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

@ -0,0 +1,50 @@
/*
Copyright Benjamin Worpitz 2018
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_PTX_H
#define BOOST_PREDEF_ARCHITECTURE_PTX_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_ARCH_PTX`
https://en.wikipedia.org/wiki/Parallel_Thread_Execution[PTX] architecture.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__CUDA_ARCH__+` | {predef_detection}
| `+__CUDA_ARCH__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_ARCH_PTX BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__CUDA_ARCH__)
# undef BOOST_ARCH_PTX
# define BOOST_ARCH_PTX BOOST_PREDEF_MAKE_10_VR0(__CUDA_ARCH__)
#endif
#if BOOST_ARCH_PTX
# 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
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PTX,BOOST_ARCH_PTX_NAME)

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_PYRAMID`]
/* tag::reference[]
= `BOOST_ARCH_PYRAMID`
Pyramid 9810 architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`pyr`] [__predef_detection__]]
]
*/
| `pyr` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -34,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

@ -0,0 +1,48 @@
/*
Copyright Andreas Schwab 2019
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_RISCV_H
#define BOOST_PREDEF_ARCHITECTURE_RISCV_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_ARCH_RISCV`
http://en.wikipedia.org/wiki/RISC-V[RISC-V] architecture.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__riscv+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__riscv)
# undef BOOST_ARCH_RISCV
# define BOOST_ARCH_RISCV BOOST_VERSION_NUMBER_AVAILABLE
#endif
#if BOOST_ARCH_RISCV
# 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
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RISCV,BOOST_ARCH_RISCV_NAME)

View File

@ -11,21 +11,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_RS6000`]
/* tag::reference[]
= `BOOST_ARCH_RS6000`
[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture.
http://en.wikipedia.org/wiki/RS/6000[RS/6000] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__THW_RS6000`] [__predef_detection__]]
[[`_IBMR2`] [__predef_detection__]]
[[`_POWER`] [__predef_detection__]]
[[`_ARCH_PWR`] [__predef_detection__]]
[[`_ARCH_PWR2`] [__predef_detection__]]
]
*/
| `+__THW_RS6000+` | {predef_detection}
| `+_IBMR2+` | {predef_detection}
| `+_POWER+` | {predef_detection}
| `+_ARCH_PWR+` | {predef_detection}
| `+_ARCH_PWR2+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -40,6 +41,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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
@ -48,6 +54,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,30 +11,33 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_SPARC`]
/* tag::reference[]
= `BOOST_ARCH_SPARC`
[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture.
http://en.wikipedia.org/wiki/SPARC[SPARC] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__sparc__`] [__predef_detection__]]
[[`__sparc`] [__predef_detection__]]
| `+__sparc__+` | {predef_detection}
| `+__sparc+` | {predef_detection}
[[`__sparcv9`] [9.0.0]]
[[`__sparcv8`] [8.0.0]]
]
*/
| `+__sparcv9+` | 9.0.0
| `+__sparc_v9__+` | 9.0.0
| `+__sparcv8+` | 8.0.0
| `+__sparc_v8__+` | 8.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_NOT_AVAILABLE
#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)
@ -46,6 +49,16 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,25 +11,26 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_SH`]
/* tag::reference[]
= `BOOST_ARCH_SH`
[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture:
If available versions \[1-5\] are specifically detected.
http://en.wikipedia.org/wiki/SuperH[SuperH] architecture:
If available versions [1-5] are specifically detected.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__sh__`] [__predef_detection__]]
| `+__sh__+` | {predef_detection}
[[`__SH5__`] [5.0.0]]
[[`__SH4__`] [4.0.0]]
[[`__sh3__`] [3.0.0]]
[[`__SH3__`] [3.0.0]]
[[`__sh2__`] [2.0.0]]
[[`__sh1__`] [1.0.0]]
]
*/
| `+__SH5__+` | 5.0.0
| `+__SH4__+` | 4.0.0
| `+__sh3__+` | 3.0.0
| `+__SH3__+` | 3.0.0
| `+__sh2__+` | 2.0.0
| `+__sh1__+` | 1.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_SH BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -59,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

@ -11,18 +11,19 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_SYS370`]
/* tag::reference[]
= `BOOST_ARCH_SYS370`
[@http://en.wikipedia.org/wiki/System/370 System/370] architecture.
http://en.wikipedia.org/wiki/System/370[System/370] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__370__`] [__predef_detection__]]
[[`__THW_370__`] [__predef_detection__]]
]
*/
| `+__370__+` | {predef_detection}
| `+__THW_370__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -35,6 +36,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,18 +11,19 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_SYS390`]
/* tag::reference[]
= `BOOST_ARCH_SYS390`
[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
http://en.wikipedia.org/wiki/System/390[System/390] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__s390__`] [__predef_detection__]]
[[`__s390x__`] [__predef_detection__]]
]
*/
| `+__s390__+` | {predef_detection}
| `+__s390x__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -35,6 +36,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,13 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H
#define BOOST_PREDEF_ARCHITECTURE_X86_H
/*`
[heading `BOOST_ARCH_X86`]
/* tag::reference[]
= `BOOST_ARCH_X86`
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is
http://en.wikipedia.org/wiki/X86[Intel x86] architecture. This is
a category to indicate that either `BOOST_ARCH_X86_32` or
`BOOST_ARCH_X86_64` is detected.
*/
*/ // end::reference[]
#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,35 +11,36 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_X86_32`]
/* tag::reference[]
= `BOOST_ARCH_X86_32`
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
If available versions \[3-6\] are specifically detected.
http://en.wikipedia.org/wiki/X86[Intel x86] architecture:
If available versions [3-6] are specifically detected.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`i386`] [__predef_detection__]]
[[`__i386__`] [__predef_detection__]]
[[`__i486__`] [__predef_detection__]]
[[`__i586__`] [__predef_detection__]]
[[`__i686__`] [__predef_detection__]]
[[`__i386`] [__predef_detection__]]
[[`_M_IX86`] [__predef_detection__]]
[[`_X86_`] [__predef_detection__]]
[[`__THW_INTEL__`] [__predef_detection__]]
[[`__I86__`] [__predef_detection__]]
[[`__INTEL__`] [__predef_detection__]]
| `i386` | {predef_detection}
| `+__i386__+` | {predef_detection}
| `+__i486__+` | {predef_detection}
| `+__i586__+` | {predef_detection}
| `+__i686__+` | {predef_detection}
| `+__i386+` | {predef_detection}
| `+_M_IX86+` | {predef_detection}
| `+_X86_+` | {predef_detection}
| `+__THW_INTEL__+` | {predef_detection}
| `+__I86__+` | {predef_detection}
| `+__INTEL__+` | {predef_detection}
[[`__I86__`] [V.0.0]]
[[`_M_IX86`] [V.0.0]]
[[`__i686__`] [6.0.0]]
[[`__i586__`] [5.0.0]]
[[`__i486__`] [4.0.0]]
[[`__i386__`] [3.0.0]]
]
*/
| `+__I86__+` | V.0.0
| `+_M_IX86+` | V.0.0
| `+__i686__+` | 6.0.0
| `+__i586__+` | 5.0.0
| `+__i486__+` | 4.0.0
| `+__i386__+` | 3.0.0
|===
*/ // end::reference[]
#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -77,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)
@ -11,21 +11,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_X86_64`]
/* 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.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__x86_64`] [__predef_detection__]]
[[`__x86_64__`] [__predef_detection__]]
[[`__amd64__`] [__predef_detection__]]
[[`__amd64`] [__predef_detection__]]
[[`_M_X64`] [__predef_detection__]]
]
*/
| `+__x86_64+` | {predef_detection}
| `+__x86_64__+` | {predef_detection}
| `+__amd64__+` | {predef_detection}
| `+__amd64+` | {predef_detection}
| `+_M_X64+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -40,6 +41,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCH_Z`]
/* tag::reference[]
= `BOOST_ARCH_Z`
[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture.
http://en.wikipedia.org/wiki/Z/Architecture[z/Architecture] architecture.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SYSC_ZARCH__`] [__predef_detection__]]
]
*/
| `+__SYSC_ZARCH__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_ARCH_Z BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -34,6 +35,11 @@ http://www.boost.org/LICENSE_1_0.txt)
# 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,6 +32,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/compiler/metrowerks.h>
#include <boost/predef/compiler/microtec.h>
#include <boost/predef/compiler/mpw.h>
#include <boost/predef/compiler/nvcc.h>
#include <boost/predef/compiler/palm.h>
#include <boost/predef/compiler/pgi.h>
#include <boost/predef/compiler/sgi_mipspro.h>

View File

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_BORLAND`]
/* tag::reference[]
= `BOOST_COMP_BORLAND`
[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler.
http://en.wikipedia.org/wiki/C_plus_plus_builder[Borland {CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__BORLANDC__`] [__predef_detection__]]
[[`__CODEGEARC__`] [__predef_detection__]]
| `+__BORLANDC__+` | {predef_detection}
| `+__CODEGEARC__+` | {predef_detection}
[[`__BORLANDC__`] [V.R.P]]
[[`__CODEGEARC__`] [V.R.P]]
]
*/
| `+__BORLANDC__+` | V.R.P
| `+__CODEGEARC__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_BORLAND BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_CLANG`]
/* tag::reference[]
= `BOOST_COMP_CLANG`
[@http://en.wikipedia.org/wiki/Clang Clang] compiler.
http://en.wikipedia.org/wiki/Clang[Clang] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__clang__`] [__predef_detection__]]
| `+__clang__+` | {predef_detection}
[[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]]
]
*/
| `+__clang_major__+`, `+__clang_minor__+`, `+__clang_patchlevel__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_CLANG BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,20 +13,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_COMP_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE
/*`
[heading `BOOST_COMP_COMO`]
/* tag::reference[]
= `BOOST_COMP_COMO`
[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler.
http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B[Comeau {CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__COMO__`] [__predef_detection__]]
| `+__COMO__+` | {predef_detection}
[[`__COMO_VERSION__`] [V.R.P]]
]
*/
| `+__COMO_VERSION__+` | V.R.P
|===
*/ // end::reference[]
#if defined(__COMO__)
# if !defined(BOOST_COMP_COMO_DETECTION) && defined(__COMO_VERSION__)

View File

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_DEC`]
/* tag::reference[]
= `BOOST_COMP_DEC`
[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler.
http://www.openvms.compaq.com/openvms/brochures/deccplus/[Compaq C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__DECCXX`] [__predef_detection__]]
[[`__DECC`] [__predef_detection__]]
| `+__DECCXX+` | {predef_detection}
| `+__DECC+` | {predef_detection}
[[`__DECCXX_VER`] [V.R.P]]
[[`__DECC_VER`] [V.R.P]]
]
*/
| `+__DECCXX_VER+` | V.R.P
| `+__DECC_VER+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_DEC BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -38,7 +39,7 @@ Version number available as major, minor, and patch.
# define BOOST_COMP_DEC_DETECTION BOOST_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER)
# endif
# if !defined(BOOST_COMP_DEC_DETECTION)
# define BOOST_COM_DEC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
# define BOOST_COMP_DEC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_DIAB`]
/* tag::reference[]
= `BOOST_COMP_DIAB`
[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler.
http://www.windriver.com/products/development_suite/wind_river_compiler/[Diab C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__DCC__`] [__predef_detection__]]
| `+__DCC__+` | {predef_detection}
[[`__VERSION_NUMBER__`] [V.R.P]]
]
*/
| `+__VERSION_NUMBER__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_DIAB BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_DMC`]
/* tag::reference[]
= `BOOST_COMP_DMC`
[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler.
http://en.wikipedia.org/wiki/Digital_Mars[Digital Mars] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__DMC__`] [__predef_detection__]]
| `+__DMC__+` | {predef_detection}
[[`__DMC__`] [V.R.P]]
]
*/
| `+__DMC__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_DMC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_SYSC`]
/* tag::reference[]
= `BOOST_COMP_SYSC`
[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler.
http://www.dignus.com/dcxx/[Dignus Systems/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SYSC__`] [__predef_detection__]]
| `+__SYSC__+` | {predef_detection}
[[`__SYSC_VER__`] [V.R.P]]
]
*/
| `+__SYSC_VER__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_SYSC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_EDG`]
/* tag::reference[]
= `BOOST_COMP_EDG`
[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler.
http://en.wikipedia.org/wiki/Edison_Design_Group[EDG {CPP} Frontend] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__EDG__`] [__predef_detection__]]
| `+__EDG__+` | {predef_detection}
[[`__EDG_VERSION__`] [V.R.0]]
]
*/
| `+__EDG_VERSION__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_COMP_EDG BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_PATH`]
/* tag::reference[]
= `BOOST_COMP_PATH`
[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler.
http://en.wikipedia.org/wiki/PathScale[EKOpath] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__PATHCC__`] [__predef_detection__]]
| `+__PATHCC__+` | {predef_detection}
[[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]]
]
*/
| `+__PATHCC__+`, `+__PATHCC_MINOR__+`, `+__PATHCC_PATCHLEVEL__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_PATH BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -15,21 +15,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_GNUC`]
/* tag::reference[]
= `BOOST_COMP_GNUC`
[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler.
http://en.wikipedia.org/wiki/GNU_Compiler_Collection[Gnu GCC C/{CPP}] compiler.
Version number available as major, minor, and patch (if available).
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__GNUC__`] [__predef_detection__]]
| `+__GNUC__+` | {predef_detection}
[[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]]
[[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]]
]
*/
| `+__GNUC__+`, `+__GNUC_MINOR__+`, `+__GNUC_PATCHLEVEL__+` | V.R.P
| `+__GNUC__+`, `+__GNUC_MINOR__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_COMP_GNUC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_GCCXML`]
/* tag::reference[]
= `BOOST_COMP_GCCXML`
[@http://www.gccxml.org/ GCC XML] compiler.
http://www.gccxml.org/[GCC XML] compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__GCCXML__`] [__predef_detection__]]
]
*/
| `+__GCCXML__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_COMP_GCCXML BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_GHS`]
/* tag::reference[]
= `BOOST_COMP_GHS`
[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler.
http://en.wikipedia.org/wiki/Green_Hills_Software[Green Hills C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__ghs`] [__predef_detection__]]
[[`__ghs__`] [__predef_detection__]]
| `+__ghs+` | {predef_detection}
| `+__ghs__+` | {predef_detection}
[[`__GHS_VERSION_NUMBER__`] [V.R.P]]
[[`__ghs`] [V.R.P]]
]
*/
| `+__GHS_VERSION_NUMBER__+` | V.R.P
| `+__ghs+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_GHS BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_HPACC`]
/* tag::reference[]
= `BOOST_COMP_HPACC`
HP aC++ compiler.
HP a{CPP} compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__HP_aCC`] [__predef_detection__]]
| `+__HP_aCC+` | {predef_detection}
[[`__HP_aCC`] [V.R.P]]
]
*/
| `+__HP_aCC+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_HPACC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_IAR`]
/* tag::reference[]
= `BOOST_COMP_IAR`
IAR C/C++ compiler.
IAR C/{CPP} compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]]
| `+__IAR_SYSTEMS_ICC__+` | {predef_detection}
[[`__VER__`] [V.R.P]]
]
*/
| `+__VER__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_IAR BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,25 +11,26 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_IBM`]
/* tag::reference[]
= `BOOST_COMP_IBM`
[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler.
http://en.wikipedia.org/wiki/VisualAge[IBM XL C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__IBMCPP__`] [__predef_detection__]]
[[`__xlC__`] [__predef_detection__]]
[[`__xlc__`] [__predef_detection__]]
| `+__IBMCPP__+` | {predef_detection}
| `+__xlC__+` | {predef_detection}
| `+__xlc__+` | {predef_detection}
[[`__COMPILER_VER__`] [V.R.P]]
[[`__xlC__`] [V.R.P]]
[[`__xlc__`] [V.R.P]]
[[`__IBMCPP__`] [V.R.P]]
]
*/
| `+__COMPILER_VER__+` | V.R.P
| `+__xlC__+` | V.R.P
| `+__xlc__+` | V.R.P
| `+__IBMCPP__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_IBM BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -1,5 +1,5 @@
/*
Copyright Rene Rivera 2008-2015
Copyright Rene Rivera 2008-2017
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,29 +11,37 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_INTEL`]
/* tag::reference[]
= `BOOST_COMP_INTEL`
[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler.
http://en.wikipedia.org/wiki/Intel_C%2B%2B[Intel C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__INTEL_COMPILER`] [__predef_detection__]]
[[`__ICL`] [__predef_detection__]]
[[`__ICC`] [__predef_detection__]]
[[`__ECC`] [__predef_detection__]]
| `+__INTEL_COMPILER+` | {predef_detection}
| `+__ICL+` | {predef_detection}
| `+__ICC+` | {predef_detection}
| `+__ECC+` | {predef_detection}
[[`__INTEL_COMPILER`] [V.R]]
[[`__INTEL_COMPILER` and `__INTEL_COMPILER_UPDATE`] [V.R.P]]
]
*/
| `+__INTEL_COMPILER+` | V.R
| `+__INTEL_COMPILER+` and `+__INTEL_COMPILER_UPDATE+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_INTEL BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
defined(__ECC)
/* tag::reference[]
NOTE: Because of an Intel mistake in the release version numbering when
`__INTEL_COMPILER` is `9999` it is detected as version 12.1.0.
*/ // end::reference[]
# if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 9999)
# define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER(12,1,0)
# endif
# if !defined(BOOST_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)
# define BOOST_COMP_INTEL_DETECTION BOOST_VERSION_NUMBER( \
BOOST_VERSION_NUMBER_MAJOR(BOOST_PREDEF_MAKE_10_VVRR(__INTEL_COMPILER)), \

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_KCC`]
/* tag::reference[]
= `BOOST_COMP_KCC`
Kai C++ compiler.
Kai {CPP} compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__KCC`] [__predef_detection__]]
| `+__KCC+` | {predef_detection}
[[`__KCC_VERSION`] [V.R.P]]
]
*/
| `+__KCC_VERSION+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_KCC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -15,17 +15,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_LLVM`]
/* tag::reference[]
= `BOOST_COMP_LLVM`
[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler.
http://en.wikipedia.org/wiki/LLVM[LLVM] compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__llvm__`] [__predef_detection__]]
]
*/
| `+__llvm__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_COMP_LLVM BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_HIGHC`]
/* tag::reference[]
= `BOOST_COMP_HIGHC`
MetaWare High C/C++ compiler.
MetaWare High C/{CPP} compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__HIGHC__`] [__predef_detection__]]
]
*/
| `+__HIGHC__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_COMP_HIGHC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,24 +11,25 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_MWERKS`]
/* tag::reference[]
= `BOOST_COMP_MWERKS`
[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler.
http://en.wikipedia.org/wiki/CodeWarrior[Metrowerks CodeWarrior] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__MWERKS__`] [__predef_detection__]]
[[`__CWCC__`] [__predef_detection__]]
| `+__MWERKS__+` | {predef_detection}
| `+__CWCC__+` | {predef_detection}
[[`__CWCC__`] [V.R.P]]
[[`__MWERKS__`] [V.R.P >= 4.2.0]]
[[`__MWERKS__`] [9.R.0]]
[[`__MWERKS__`] [8.R.0]]
]
*/
| `+__CWCC__+` | V.R.P
| `+__MWERKS__+` | V.R.P >= 4.2.0
| `+__MWERKS__+` | 9.R.0
| `+__MWERKS__+` | 8.R.0
|===
*/ // end::reference[]
#define BOOST_COMP_MWERKS BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_MRI`]
/* tag::reference[]
= `BOOST_COMP_MRI`
[@http://www.mentor.com/microtec/ Microtec C/C++] compiler.
http://www.mentor.com/microtec/[Microtec C/{CPP}] compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`_MRI`] [__predef_detection__]]
]
*/
| `+_MRI+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_COMP_MRI BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_MPW`]
/* tag::reference[]
= `BOOST_COMP_MPW`
[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler.
http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop[MPW {CPP}] compiler.
Version number available as major, and minor.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__MRC__`] [__predef_detection__]]
[[`MPW_C`] [__predef_detection__]]
[[`MPW_CPLUS`] [__predef_detection__]]
| `+__MRC__+` | {predef_detection}
| `MPW_C` | {predef_detection}
| `MPW_CPLUS` | {predef_detection}
[[`__MRC__`] [V.R.0]]
]
*/
| `+__MRC__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_COMP_MPW BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -0,0 +1,74 @@
/*
Copyright Benjamin Worpitz 2018
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_COMPILER_NVCC_H
#define BOOST_PREDEF_COMPILER_NVCC_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_COMP_NVCC`
https://en.wikipedia.org/wiki/NVIDIA_CUDA_Compiler[NVCC] compiler.
Version number available as major, minor, and patch beginning with version 7.5.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__NVCC__+` | {predef_detection}
| `+__CUDACC_VER_MAJOR__+`, `+__CUDACC_VER_MINOR__+`, `+__CUDACC_VER_BUILD__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_NVCC BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__NVCC__)
# if !defined(__CUDACC_VER_MAJOR__) || !defined(__CUDACC_VER_MINOR__) || !defined(__CUDACC_VER_BUILD__)
# define BOOST_COMP_NVCC_DETECTION BOOST_VERSION_NUMBER_AVAILABLE
# else
# define BOOST_COMP_NVCC_DETECTION BOOST_VERSION_NUMBER(__CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, __CUDACC_VER_BUILD__)
# endif
#endif
#ifdef BOOST_COMP_NVCC_DETECTION
/*
Always define BOOST_COMP_NVCC instead of BOOST_COMP_NVCC_EMULATED
The nvcc compilation process is somewhat special as can be read here:
https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#cuda-compilation-trajectory
The nvcc compiler precompiles the input two times. Once for the device code
being compiled by the cicc device compiler and once for the host code
compiled by the real host compiler. NVCC uses gcc/clang/msvc/...
depending on the host compiler being set on the command line.
Predef (as a preprocessor only lib) detects the one doing the preprocessing
as compiler and expects it to be the one doing the real compilation.
This is not true for NVCC which is only doing the preprocessing and which
is using another compiler for parts of its work. So for NVCC it should be
allowed to set BOOST_COMP_NVCC additionally to the already detected host
compiler because both is true: It is gcc/clang/... compiling the code, but it
is also NVCC doing the preprocessing and adding some other quirks you may
want to detect.
This behavior is similar to what boost config is doing in `select_compiler_config.hpp`.
There the NVCC detection is not handled as a real compiler (part of the
#if-#elif) but as additional option before the real compiler.
*/
# undef BOOST_COMP_NVCC
# define BOOST_COMP_NVCC BOOST_COMP_NVCC_DETECTION
# define BOOST_COMP_NVCC_AVAILABLE
# include <boost/predef/detail/comp_detected.h>
#endif
#define BOOST_COMP_NVCC_NAME "NVCC"
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_COMP_NVCC,BOOST_COMP_NVCC_NAME)

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_PALM`]
/* tag::reference[]
= `BOOST_COMP_PALM`
Palm C/C++ compiler.
Palm C/{CPP} compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`_PACC_VER`] [__predef_detection__]]
| `+_PACC_VER+` | {predef_detection}
[[`_PACC_VER`] [V.R.P]]
]
*/
| `+_PACC_VER+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_PALM BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,19 +11,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_PGI`]
/* tag::reference[]
= `BOOST_COMP_PGI`
[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler.
http://en.wikipedia.org/wiki/The_Portland_Group[Portland Group C/{CPP}] compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__PGI`] [__predef_detection__]]
| `+__PGI+` | {predef_detection}
[[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]]
]
*/
| `+__PGIC__+`, `+__PGIC_MINOR__+`, `+__PGIC_PATCHLEVEL__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_PGI BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,22 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_SGI`]
/* tag::reference[]
= `BOOST_COMP_SGI`
[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler.
http://en.wikipedia.org/wiki/MIPSpro[SGI MIPSpro] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__sgi`] [__predef_detection__]]
[[`sgi`] [__predef_detection__]]
| `+__sgi+` | {predef_detection}
| `sgi` | {predef_detection}
[[`_SGI_COMPILER_VERSION`] [V.R.P]]
[[`_COMPILER_VERSION`] [V.R.P]]
]
*/
| `+_SGI_COMPILER_VERSION+` | V.R.P
| `+_COMPILER_VERSION+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,24 +11,25 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_SUNPRO`]
/* tag::reference[]
= `BOOST_COMP_SUNPRO`
[@http://en.wikipedia.org/wiki/Oracle_Solaris_Studio Oracle Solaris Studio] compiler.
http://en.wikipedia.org/wiki/Oracle_Solaris_Studio[Oracle Solaris Studio] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SUNPRO_CC`] [__predef_detection__]]
[[`__SUNPRO_C`] [__predef_detection__]]
| `+__SUNPRO_CC+` | {predef_detection}
| `+__SUNPRO_C+` | {predef_detection}
[[`__SUNPRO_CC`] [V.R.P]]
[[`__SUNPRO_C`] [V.R.P]]
[[`__SUNPRO_CC`] [VV.RR.P]]
[[`__SUNPRO_C`] [VV.RR.P]]
]
*/
| `+__SUNPRO_CC+` | V.R.P
| `+__SUNPRO_C+` | V.R.P
| `+__SUNPRO_CC+` | VV.RR.P
| `+__SUNPRO_C+` | VV.RR.P
|===
*/ // end::reference[]
#define BOOST_COMP_SUNPRO BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_TENDRA`]
/* tag::reference[]
= `BOOST_COMP_TENDRA`
[@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler.
http://en.wikipedia.org/wiki/TenDRA_Compiler[TenDRA C/{CPP}] compiler.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__TenDRA__`] [__predef_detection__]]
]
*/
| `+__TenDRA__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_COMP_TENDRA BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -15,25 +15,26 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_MSVC`]
/* tag::reference[]
= `BOOST_COMP_MSVC`
[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler.
http://en.wikipedia.org/wiki/Visual_studio[Microsoft Visual C/{CPP}] compiler.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`_MSC_VER`] [__predef_detection__]]
| `+_MSC_VER+` | {predef_detection}
[[`_MSC_FULL_VER`] [V.R.P]]
[[`_MSC_VER`] [V.R.0]]
]
| `+_MSC_FULL_VER+` | V.R.P
| `+_MSC_VER+` | V.R.0
|===
[note Release of Visual Studio after 2015 will no longer be identified
NOTE: Release of Visual Studio after 2015 will no longer be identified
by Boost Predef as the marketing version number. Instead we use the
compiler version number directly, i.e. the _MSC_VER number.]
*/
compiler version number directly, i.e. the _MSC_VER number.
*/ // end::reference[]
#define BOOST_COMP_MSVC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_COMP_WATCOM`]
/* tag::reference[]
= `BOOST_COMP_WATCOM`
[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler.
http://en.wikipedia.org/wiki/Watcom[Watcom {CPP}] compiler.
Version number available as major, and minor.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__WATCOMC__`] [__predef_detection__]]
| `+__WATCOMC__+` | {predef_detection}
[[`__WATCOMC__`] [V.R.P]]
]
*/
| `+__WATCOMC__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_COMP_WATCOM BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -1,26 +0,0 @@
/*
Copyright Rene Rivera 2013
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_DETAIL_ENDIAN_COMPAT_H
#define BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H
#include <boost/predef/other/endian.h>
#if BOOST_ENDIAN_BIG_BYTE
# define BOOST_BIG_ENDIAN
# define BOOST_BYTE_ORDER 4321
#endif
#if BOOST_ENDIAN_LITTLE_BYTE
# define BOOST_LITTLE_ENDIAN
# define BOOST_BYTE_ORDER 1234
#endif
#if BOOST_ENDIAN_LITTLE_WORD
# define BOOST_PDP_ENDIAN
# define BOOST_BYTE_ORDER 2134
#endif
#endif

View File

@ -16,55 +16,104 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
/*`
[section Using the `BOOST_HW_SIMD_*` predefs]
[include ../doc/hardware_simd.qbk]
[endsect]
/* tag::reference[]
= Using the `BOOST_HW_SIMD_*` predefs
[/ --------------------------- ]
SIMD predefs depend on compiler options. For example, you will have to add the
option `-msse3` to clang or gcc to enable SSE3. SIMD predefs are also inclusive.
This means that if SSE3 is enabled, then every other extensions with a lower
version number will implicitly be enabled and detected. However, some extensions
are CPU specific, they may not be detected nor enabled when an upper version is
enabled.
[section `BOOST_HW_SIMD_*`]
NOTE: SSE(1) and SSE2 are automatically enabled by default when using x86-64
architecture.
[heading `BOOST_HW_SIMD`]
To check if any SIMD extension has been enabled, you can use:
The SIMD extension detected for a specific architectures.
Version number depends on the detected extension.
[source]
----
#include <boost/predef/hardware/simd.h>
#include <iostream>
[table
[[__predef_symbol__] [__predef_version__]]
int main()
{
#if defined(BOOST_HW_SIMD_AVAILABLE)
std::cout << "SIMD detected!" << std::endl;
#endif
return 0;
}
----
[[`BOOST_HW_SIMD_X86_AVAILABLE`] [__predef_detection__]]
[[`BOOST_HW_SIMD_X86_AMD_AVAILABLE`] [__predef_detection__]]
[[`BOOST_HW_SIMD_ARM_AVAILABLE`] [__predef_detection__]]
[[`BOOST_HW_SIMD_PPC_AVAILABLE`] [__predef_detection__]]
]
When writing SIMD specific code, you may want to check if a particular extension
has been detected. To do so you have to use the right architecture predef and
compare it. Those predef are of the form `BOOST_HW_SIMD_"ARCH"` (where `"ARCH"`
is either `ARM`, `PPC`, or `X86`). For example, if you compile code for x86
architecture, you will have to use `BOOST_HW_SIMD_X86`. Its value will be the
version number of the most recent SIMD extension detected for the architecture.
[include ../include/boost/predef/hardware/simd/x86.h]
[include ../include/boost/predef/hardware/simd/x86_amd.h]
[include ../include/boost/predef/hardware/simd/arm.h]
[include ../include/boost/predef/hardware/simd/ppc.h]
To check if an extension has been enabled:
[endsect]
[source]
----
#include <boost/predef/hardware/simd.h>
#include <iostream>
[/ --------------------------- ]
int main()
{
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION
std::cout << "This is SSE3!" << std::endl;
#endif
return 0;
}
----
[section `BOOST_HW_SIMD_X86_*_VERSION`]
[include ../include/boost/predef/hardware/simd/x86/versions.h]
[endsect]
NOTE: The *_VERSION* defines that map version number to actual real
identifiers. This way it is easier to write comparisons without messing up with
version numbers.
[section `BOOST_HW_SIMD_X86_AMD_*_VERSION`]
[include ../include/boost/predef/hardware/simd/x86_amd/versions.h]
[endsect]
To *"strictly"* check the most recent detected extension:
[section `BOOST_HW_SIMD_ARM_*_VERSION`]
[include ../include/boost/predef/hardware/simd/arm/versions.h]
[endsect]
[source]
----
#include <boost/predef/hardware/simd.h>
#include <iostream>
[section `BOOST_HW_SIMD_PPC_*_VERSION`]
[include ../include/boost/predef/hardware/simd/ppc/versions.h]
[endsect]
int main()
{
#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION
std::cout << "This is SSE3 and this is the most recent enabled extension!"
<< std::endl;
#endif
return 0;
}
----
*/
Because of the version systems of predefs and of the inclusive property of SIMD
extensions macros, you can easily check for ranges of supported extensions:
[source]
----
#include <boost/predef/hardware/simd.h>
#include <iostream>
int main()
{
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\
BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION
std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl;
#endif
return 0;
}
----
NOTE: Unlike gcc and clang, Visual Studio does not allow you to specify precisely
the SSE variants you want to use, the only detections that will take place are
SSE, SSE2, AVX and AVX2. For more informations,
see [@https://msdn.microsoft.com/en-us/library/b0084kay.aspx here].
*/ // end::reference[]
// We check if SIMD extension of multiples architectures have been detected,
// if yes, then this is an error!

View File

@ -12,34 +12,38 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/hardware/simd/arm/versions.h>
/*`
[heading `BOOST_HW_SIMD_ARM`]
/* tag::reference[]
= `BOOST_HW_SIMD_ARM`
The SIMD extension for ARM (*if detected*).
Version number depends on the most recent detected extension.
The SIMD extension for ARM (*if detected*).
Version number depends on the most recent detected extension.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__ARM_NEON__`] [__predef_detection__]]
[[`__aarch64__`] [__predef_detection__]]
[[`_M_ARM`] [__predef_detection__]]
]
| `+__ARM_NEON__+` | {predef_detection}
| `+__aarch64__+` | {predef_detection}
| `+_M_ARM+` | {predef_detection}
| `+_M_ARM64+` | {predef_detection}
|===
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__ARM_NEON__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
[[`__aarch64__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
[[`_M_ARM`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
]
| `+__ARM_NEON__+` | BOOST_HW_SIMD_ARM_NEON_VERSION
| `+__aarch64__+` | BOOST_HW_SIMD_ARM_NEON_VERSION
| `+_M_ARM+` | BOOST_HW_SIMD_ARM_NEON_VERSION
| `+_M_ARM64+` | BOOST_HW_SIMD_ARM_NEON_VERSION
|===
*/
*/ // end::reference[]
#define BOOST_HW_SIMD_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
#undef BOOST_HW_SIMD_ARM
#if !defined(BOOST_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM))
#if !defined(BOOST_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM) || defined (_M_ARM64))
# define BOOST_HW_SIMD_ARM BOOST_HW_SIMD_ARM_NEON_VERSION
#endif

View File

@ -11,22 +11,28 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
/*`
Those defines represent ARM SIMD extensions versions.
/* tag::reference[]
= `BOOST_HW_SIMD_ARM_*_VERSION`
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_ARM`.]
*/
Those defines represent ARM SIMD extensions versions.
NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_ARM`.
*/ // end::reference[]
// ---------------------------------
/*`
[heading `BOOST_HW_SIMD_ARM_NEON_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_ARM_NEON_VERSION`
The [@https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON]
ARM extension version number.
The https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29[NEON]
ARM extension version number.
Version number is: *1.0.0*.
*/
Version number is: *1.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_ARM_NEON_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
/* tag::reference[]
*/ // end::reference[]
#endif

View File

@ -12,35 +12,37 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/hardware/simd/ppc/versions.h>
/*`
[heading `BOOST_HW_SIMD_PPC`]
/* tag::reference[]
= `BOOST_HW_SIMD_PPC`
The SIMD extension for PowerPC (*if detected*).
Version number depends on the most recent detected extension.
The SIMD extension for PowerPC (*if detected*).
Version number depends on the most recent detected extension.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__VECTOR4DOUBLE__`] [__predef_detection__]]
| `+__VECTOR4DOUBLE__+` | {predef_detection}
[[`__ALTIVEC__`] [__predef_detection__]]
[[`__VEC__`] [__predef_detection__]]
| `+__ALTIVEC__+` | {predef_detection}
| `+__VEC__+` | {predef_detection}
[[`__VSX__`] [__predef_detection__]]
]
| `+__VSX__+` | {predef_detection}
|===
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__VECTOR4DOUBLE__`] [BOOST_HW_SIMD_PPC_QPX_VERSION]]
| `+__VECTOR4DOUBLE__+` | BOOST_HW_SIMD_PPC_QPX_VERSION
[[`__ALTIVEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]]
[[`__VEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]]
| `+__ALTIVEC__+` | BOOST_HW_SIMD_PPC_VMX_VERSION
| `+__VEC__+` | BOOST_HW_SIMD_PPC_VMX_VERSION
[[`__VSX__`] [BOOST_HW_SIMD_PPC_VSX_VERSION]]
]
| `+__VSX__+` | BOOST_HW_SIMD_PPC_VSX_VERSION
|===
*/
*/ // end::reference[]
#define BOOST_HW_SIMD_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,41 +11,47 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
/*`
Those defines represent Power PC SIMD extensions versions.
/* tag::reference[]
= `BOOST_HW_SIMD_PPC_*_VERSION`
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_PPC`.]
*/
Those defines represent Power PC SIMD extensions versions.
NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_PPC`.
*/ // end::reference[]
// ---------------------------------
/*`
[heading `BOOST_HW_SIMD_PPC_VMX_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_PPC_VMX_VERSION`
The [@https://en.wikipedia.org/wiki/AltiVec#VMX128 VMX] powerpc extension
version number.
The https://en.wikipedia.org/wiki/AltiVec#VMX128[VMX] powerpc extension
version number.
Version number is: *1.0.0*.
*/
Version number is: *1.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_PPC_VMX_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
/*`
[heading `BOOST_HW_SIMD_PPC_VSX_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_PPC_VSX_VERSION`
The [@https://en.wikipedia.org/wiki/AltiVec#VSX VSX] powerpc extension version
number.
The https://en.wikipedia.org/wiki/AltiVec#VSX[VSX] powerpc extension version
number.
Version number is: *1.1.0*.
*/
Version number is: *1.1.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_PPC_VSX_VERSION BOOST_VERSION_NUMBER(1, 1, 0)
/*`
[heading `BOOST_HW_SIMD_PPC_QPX_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_PPC_QPX_VERSION`
The QPX powerpc extension version number.
The QPX powerpc extension version number.
Version number is: *2.0.0*.
*/
Version number is: *2.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_PPC_QPX_VERSION BOOST_VERSION_NUMBER(2, 0, 0)
/* tag::reference[]
*/ // end::reference[]
#endif

View File

@ -12,65 +12,67 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/hardware/simd/x86/versions.h>
/*`
[heading `BOOST_HW_SIMD_X86`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86`
The SIMD extension for x86 (*if detected*).
Version number depends on the most recent detected extension.
The SIMD extension for x86 (*if detected*).
Version number depends on the most recent detected extension.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SSE__`] [__predef_detection__]]
[[`_M_X64`] [__predef_detection__]]
[[`_M_IX86_FP >= 1`] [__predef_detection__]]
| `+__SSE__+` | {predef_detection}
| `+_M_X64+` | {predef_detection}
| `_M_IX86_FP >= 1` | {predef_detection}
[[`__SSE2__`] [__predef_detection__]]
[[`_M_X64`] [__predef_detection__]]
[[`_M_IX86_FP >= 2`] [__predef_detection__]]
| `+__SSE2__+` | {predef_detection}
| `+_M_X64+` | {predef_detection}
| `_M_IX86_FP >= 2` | {predef_detection}
[[`__SSE3__`] [__predef_detection__]]
| `+__SSE3__+` | {predef_detection}
[[`__SSSE3__`] [__predef_detection__]]
| `+__SSSE3__+` | {predef_detection}
[[`__SSE4_1__`] [__predef_detection__]]
| `+__SSE4_1__+` | {predef_detection}
[[`__SSE4_2__`] [__predef_detection__]]
| `+__SSE4_2__+` | {predef_detection}
[[`__AVX__`] [__predef_detection__]]
| `+__AVX__+` | {predef_detection}
[[`__FMA__`] [__predef_detection__]]
| `+__FMA__+` | {predef_detection}
[[`__AVX2__`] [__predef_detection__]]
]
| `+__AVX2__+` | {predef_detection}
|===
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SSE__`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
[[`_M_X64`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
[[`_M_IX86_FP >= 1`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
| `+__SSE__+` | BOOST_HW_SIMD_X86_SSE_VERSION
| `+_M_X64+` | BOOST_HW_SIMD_X86_SSE_VERSION
| `_M_IX86_FP >= 1` | BOOST_HW_SIMD_X86_SSE_VERSION
[[`__SSE2__`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
[[`_M_X64`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
[[`_M_IX86_FP >= 2`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
| `+__SSE2__+` | BOOST_HW_SIMD_X86_SSE2_VERSION
| `+_M_X64+` | BOOST_HW_SIMD_X86_SSE2_VERSION
| `_M_IX86_FP >= 2` | BOOST_HW_SIMD_X86_SSE2_VERSION
[[`__SSE3__`] [BOOST_HW_SIMD_X86_SSE3_VERSION]]
| `+__SSE3__+` | BOOST_HW_SIMD_X86_SSE3_VERSION
[[`__SSSE3__`] [BOOST_HW_SIMD_X86_SSSE3_VERSION]]
| `+__SSSE3__+` | BOOST_HW_SIMD_X86_SSSE3_VERSION
[[`__SSE4_1__`] [BOOST_HW_SIMD_X86_SSE4_1_VERSION]]
| `+__SSE4_1__+` | BOOST_HW_SIMD_X86_SSE4_1_VERSION
[[`__SSE4_2__`] [BOOST_HW_SIMD_X86_SSE4_2_VERSION]]
| `+__SSE4_2__+` | BOOST_HW_SIMD_X86_SSE4_2_VERSION
[[`__AVX__`] [BOOST_HW_SIMD_X86_AVX_VERSION]]
| `+__AVX__+` | BOOST_HW_SIMD_X86_AVX_VERSION
[[`__FMA__`] [BOOST_HW_SIMD_X86_FMA3_VERSION]]
| `+__FMA__+` | BOOST_HW_SIMD_X86_FMA3_VERSION
[[`__AVX2__`] [BOOST_HW_SIMD_X86_AVX2_VERSION]]
]
| `+__AVX2__+` | BOOST_HW_SIMD_X86_AVX2_VERSION
|===
*/
*/ // end::reference[]
#define BOOST_HW_SIMD_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,119 +11,125 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
/*`
Those defines represent x86 SIMD extensions versions.
/* tag::reference[]
= `BOOST_HW_SIMD_X86_*_VERSION`
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86`.]
*/
Those defines represent x86 SIMD extensions versions.
NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_X86`.
*/ // end::reference[]
// ---------------------------------
/*`
[heading `BOOST_HW_SIMD_X86_MMX_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_MMX_VERSION`
The [@https://en.wikipedia.org/wiki/MMX_(instruction_set) MMX] x86 extension
version number.
The https://en.wikipedia.org/wiki/MMX_(instruction_set)[MMX] x86 extension
version number.
Version number is: *0.99.0*.
*/
Version number is: *0.99.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_MMX_VERSION BOOST_VERSION_NUMBER(0, 99, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSE_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSE_VERSION`
The [@https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE] x86 extension
version number.
The https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions[SSE] x86 extension
version number.
Version number is: *1.0.0*.
*/
Version number is: *1.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSE_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSE2_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSE2_VERSION`
The [@https://en.wikipedia.org/wiki/SSE2 SSE2] x86 extension version number.
The https://en.wikipedia.org/wiki/SSE2[SSE2] x86 extension version number.
Version number is: *2.0.0*.
*/
Version number is: *2.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSE2_VERSION BOOST_VERSION_NUMBER(2, 0, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSE3_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSE3_VERSION`
The [@https://en.wikipedia.org/wiki/SSE3 SSE3] x86 extension version number.
The https://en.wikipedia.org/wiki/SSE3[SSE3] x86 extension version number.
Version number is: *3.0.0*.
*/
Version number is: *3.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSE3_VERSION BOOST_VERSION_NUMBER(3, 0, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSSE3_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSSE3_VERSION`
The [@https://en.wikipedia.org/wiki/SSSE3 SSSE3] x86 extension version number.
The https://en.wikipedia.org/wiki/SSSE3[SSSE3] x86 extension version number.
Version number is: *3.1.0*.
*/
Version number is: *3.1.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSSE3_VERSION BOOST_VERSION_NUMBER(3, 1, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSE4_1_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSE4_1_VERSION`
The [@https://en.wikipedia.org/wiki/SSE4#SSE4.1 SSE4_1] x86 extension version
number.
The https://en.wikipedia.org/wiki/SSE4#SSE4.1[SSE4_1] x86 extension version
number.
Version number is: *4.1.0*.
*/
Version number is: *4.1.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSE4_1_VERSION BOOST_VERSION_NUMBER(4, 1, 0)
/*`
[heading `BOOST_HW_SIMD_X86_SSE4_2_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_SSE4_2_VERSION`
The [@https://en.wikipedia.org/wiki/SSE4##SSE4.2 SSE4_2] x86 extension version
number.
The https://en.wikipedia.org/wiki/SSE4##SSE4.2[SSE4_2] x86 extension version
number.
Version number is: *4.2.0*.
*/
Version number is: *4.2.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_SSE4_2_VERSION BOOST_VERSION_NUMBER(4, 2, 0)
/*`
[heading `BOOST_HW_SIMD_X86_AVX_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AVX_VERSION`
The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX] x86
extension version number.
The https://en.wikipedia.org/wiki/Advanced_Vector_Extensions[AVX] x86
extension version number.
Version number is: *5.0.0*.
*/
Version number is: *5.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AVX_VERSION BOOST_VERSION_NUMBER(5, 0, 0)
/*`
[heading `BOOST_HW_SIMD_X86_FMA3_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_FMA3_VERSION`
The [@https://en.wikipedia.org/wiki/FMA_instruction_set FMA3] x86 extension
version number.
The https://en.wikipedia.org/wiki/FMA_instruction_set[FMA3] x86 extension
version number.
Version number is: *5.2.0*.
*/
Version number is: *5.2.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_FMA3_VERSION BOOST_VERSION_NUMBER(5, 2, 0)
/*`
[heading `BOOST_HW_SIMD_X86_AVX2_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AVX2_VERSION`
The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 AVX2]
x86 extension version number.
The https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2[AVX2]
x86 extension version number.
Version number is: *5.3.0*.
*/
Version number is: *5.3.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AVX2_VERSION BOOST_VERSION_NUMBER(5, 3, 0)
/*`
[heading `BOOST_HW_SIMD_X86_MIC_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_MIC_VERSION`
The [@https://en.wikipedia.org/wiki/Xeon_Phi MIC] (Xeon Phi) x86 extension
version number.
The https://en.wikipedia.org/wiki/Xeon_Phi[MIC] (Xeon Phi) x86 extension
version number.
Version number is: *9.0.0*.
*/
Version number is: *9.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_MIC_VERSION BOOST_VERSION_NUMBER(9, 0, 0)
/* tag::reference[]
*/ // end::reference[]
#endif

View File

@ -12,42 +12,44 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/hardware/simd/x86_amd/versions.h>
/*`
[heading `BOOST_HW_SIMD_X86_AMD`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AMD`
The SIMD extension for x86 (AMD) (*if detected*).
Version number depends on the most recent detected extension.
The SIMD extension for x86 (AMD) (*if detected*).
Version number depends on the most recent detected extension.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SSE4A__`] [__predef_detection__]]
| `+__SSE4A__+` | {predef_detection}
[[`__FMA4__`] [__predef_detection__]]
| `+__FMA4__+` | {predef_detection}
[[`__XOP__`] [__predef_detection__]]
| `+__XOP__+` | {predef_detection}
[[`BOOST_HW_SIMD_X86`] [__predef_detection__]]
]
| `BOOST_HW_SIMD_X86` | {predef_detection}
|===
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__SSE4A__`] [BOOST_HW_SIMD_X86_SSE4A_VERSION]]
| `+__SSE4A__+` | BOOST_HW_SIMD_X86_SSE4A_VERSION
[[`__FMA4__`] [BOOST_HW_SIMD_X86_FMA4_VERSION]]
| `+__FMA4__+` | BOOST_HW_SIMD_X86_FMA4_VERSION
[[`__XOP__`] [BOOST_HW_SIMD_X86_XOP_VERSION]]
| `+__XOP__+` | BOOST_HW_SIMD_X86_XOP_VERSION
[[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_X86]]
]
| `BOOST_HW_SIMD_X86` | BOOST_HW_SIMD_X86
|===
[note This predef includes every other x86 SIMD extensions and also has other
more specific extensions (FMA4, XOP, SSE4a). You should use this predef
instead of `BOOST_HW_SIMD_X86` to test if those specific extensions have
been detected.]
NOTE: This predef includes every other x86 SIMD extensions and also has other
more specific extensions (FMA4, XOP, SSE4a). You should use this predef
instead of `BOOST_HW_SIMD_X86` to test if those specific extensions have
been detected.
*/
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AMD BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,41 +11,46 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
/*`
Those defines represent x86 (AMD specific) SIMD extensions versions.
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AMD_*_VERSION`
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86_AMD`.]
*/
Those defines represent x86 (AMD specific) SIMD extensions versions.
NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_X86_AMD`.
*/ // end::reference[]
// ---------------------------------
/*`
[heading `BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION`
[@https://en.wikipedia.org/wiki/SSE4##SSE4A SSE4A] x86 extension (AMD specific).
https://en.wikipedia.org/wiki/SSE4##SSE4A[SSE4A] x86 extension (AMD specific).
Version number is: *4.0.0*.
*/
Version number is: *4.0.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION BOOST_VERSION_NUMBER(4, 0, 0)
/*`
[heading `BOOST_HW_SIMD_X86_AMD_FMA4_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AMD_FMA4_VERSION`
[@https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set FMA4] x86 extension (AMD specific).
https://en.wikipedia.org/wiki/FMA_instruction_set#FMA4_instruction_set[FMA4] x86 extension (AMD specific).
Version number is: *5.1.0*.
*/
Version number is: *5.1.0*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AMD_FMA4_VERSION BOOST_VERSION_NUMBER(5, 1, 0)
/*`
[heading `BOOST_HW_SIMD_X86_AMD_XOP_VERSION`]
/* tag::reference[]
= `BOOST_HW_SIMD_X86_AMD_XOP_VERSION`
[@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific).
https://en.wikipedia.org/wiki/XOP_instruction_set[XOP] x86 extension (AMD specific).
Version number is: *5.1.1*.
*/
Version number is: *5.1.1*.
*/ // end::reference[]
#define BOOST_HW_SIMD_X86_AMD_XOP_VERSION BOOST_VERSION_NUMBER(5, 1, 1)
/* tag::reference[]
*/ // end::reference[]
#endif

View File

@ -13,5 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/language/stdc.h>
#include <boost/predef/language/stdcpp.h>
#include <boost/predef/language/objc.h>
#include <boost/predef/language/cuda.h>
#endif

View File

@ -0,0 +1,53 @@
/*
Copyright Benjamin Worpitz 2018
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_LANGUAGE_CUDA_H
#define BOOST_PREDEF_LANGUAGE_CUDA_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/* tag::reference[]
= `BOOST_LANG_CUDA`
https://en.wikipedia.org/wiki/CUDA[CUDA C/{CPP}] language.
If available, the version is detected as VV.RR.P.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__CUDACC__+` | {predef_detection}
| `+__CUDA__+` | {predef_detection}
| `CUDA_VERSION` | VV.RR.P
|===
*/ // end::reference[]
#define BOOST_LANG_CUDA BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__CUDACC__) || defined(__CUDA__)
# undef BOOST_LANG_CUDA
# include <cuda.h>
# if defined(CUDA_VERSION)
# define BOOST_LANG_CUDA BOOST_PREDEF_MAKE_10_VVRRP(CUDA_VERSION)
# else
# define BOOST_LANG_CUDA BOOST_VERSION_NUMBER_AVAILABLE
# endif
#endif
#if BOOST_LANG_CUDA
# define BOOST_LANG_CUDA_AVAILABLE
#endif
#define BOOST_LANG_CUDA_NAME "CUDA C/C++"
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANG_CUDA,BOOST_LANG_CUDA_NAME)

View File

@ -11,17 +11,18 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANG_OBJC`]
/* tag::reference[]
= `BOOST_LANG_OBJC`
[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language.
http://en.wikipedia.org/wiki/Objective-C[Objective-C] language.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__OBJC__`] [__predef_detection__]]
]
*/
| `+__OBJC__+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_LANG_OBJC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,20 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANG_STDC`]
/* tag::reference[]
= `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.
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 Epoch date.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__STDC__`] [__predef_detection__]]
| `+__STDC__+` | {predef_detection}
[[`__STDC_VERSION__`] [V.R.P]]
]
*/
| `+__STDC_VERSION__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LANG_STDC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -11,29 +11,34 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANG_STDCPP`]
/* tag::reference[]
= `BOOST_LANG_STDCPP`
[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
Because of the way the C++ standardization process works the
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 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:
[table Detected Version Number vs. C++ Standard Year
[[Detected Version Number] [Standard Year] [C++ Standard]]
[[27.11.1] [1998] [ISO/IEC 14882:1998]]
[[41.12.1] [2011] [ISO/IEC 14882:2011]]
]
.Detected Version Number vs. {CPP} Standard Year
[options="header"]
|===
| Detected Version Number | Standard Year | {CPP} Standard
| 27.11.1 | 1998 | ISO/IEC 14882:1998
| 41.3.1 | 2011 | ISO/IEC 14882:2011
| 44.2.1 | 2014 | ISO/IEC 14882:2014
| 47.3.1 | 2017 | ISO/IEC 14882:2017
|===
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__cplusplus`] [__predef_detection__]]
| `+__cplusplus+` | {predef_detection}
[[`__cplusplus`] [YYYY.MM.1]]
]
*/
| `+__cplusplus+` | YYYY.MM.1
|===
*/ // end::reference[]
#define BOOST_LANG_STDCPP BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -52,20 +57,21 @@ Specifically the defined versions are:
#define BOOST_LANG_STDCPP_NAME "Standard C++"
/*`
[heading `BOOST_LANG_STDCPPCLI`]
/* tag::reference[]
= `BOOST_LANG_STDCPPCLI`
[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language.
If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
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 Epoch date.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__cplusplus_cli`] [__predef_detection__]]
| `+__cplusplus_cli+` | {predef_detection}
[[`__cplusplus_cli`] [YYYY.MM.1]]
]
*/
| `+__cplusplus_cli+` | YYYY.MM.1
|===
*/ // end::reference[]
#define BOOST_LANG_STDCPPCLI BOOST_VERSION_NUMBER_NOT_AVAILABLE
@ -84,17 +90,18 @@ If available, the year of the standard is detected as YYYY.MM.1 from the Epoc da
#define BOOST_LANG_STDCPPCLI_NAME "Standard C++/CLI"
/*`
[heading `BOOST_LANG_STDECPP`]
/* tag::reference[]
= `BOOST_LANG_STDECPP`
[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language.
http://en.wikipedia.org/wiki/Embedded_C%2B%2B[Standard Embedded {CPP}] language.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__embedded_cplusplus`] [__predef_detection__]]
]
*/
| `+__embedded_cplusplus+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_LANG_STDECPP BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -12,6 +12,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/library/c/_prefix.h>
#include <boost/predef/library/c/cloudabi.h>
#include <boost/predef/library/c/gnu.h>
#include <boost/predef/library/c/uc.h>
#include <boost/predef/library/c/vms.h>

View File

@ -0,0 +1,54 @@
/*
* Copyright (C) 2017 James E. King III
*
* 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_LIBRARY_C_CLOUDABI_H
#define BOOST_PREDEF_LIBRARY_C_CLOUDABI_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <boost/predef/library/c/_prefix.h>
#if defined(__CloudABI__)
#include <stddef.h>
#endif
/* tag::reference[]
= `BOOST_LIB_C_CLOUDABI`
https://github.com/NuxiNL/cloudlibc[cloudlibc] - CloudABI's standard C library.
Version number available as major, and minor.
[options="header"]
|===
| {predef_symbol} | {predef_version}
| `+__cloudlibc__+` | {predef_detection}
| `+__cloudlibc_major__+`, `+__cloudlibc_minor__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_LIB_C_CLOUDABI BOOST_VERSION_NUMBER_NOT_AVAILABLE
#if defined(__cloudlibc__)
# undef BOOST_LIB_C_CLOUDABI
# define BOOST_LIB_C_CLOUDABI \
BOOST_VERSION_NUMBER(__cloudlibc_major__,__cloudlibc_minor__,0)
#endif
#if BOOST_LIB_C_CLOUDABI
# define BOOST_LIB_C_CLOUDABI_AVAILABLE
#endif
#define BOOST_LIB_C_CLOUDABI_NAME "cloudlibc"
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_CLOUDABI,BOOST_LIB_C_CLOUDABI_NAME)

View File

@ -19,22 +19,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <cstddef>
#endif
/*`
[heading `BOOST_LIB_C_GNU`]
/* tag::reference[]
= `BOOST_LIB_C_GNU`
[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library.
http://en.wikipedia.org/wiki/Glibc[GNU glibc] Standard C library.
Version number available as major, and minor.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__GLIBC__`] [__predef_detection__]]
[[`__GNU_LIBRARY__`] [__predef_detection__]]
| `+__GLIBC__+` | {predef_detection}
| `+__GNU_LIBRARY__+` | {predef_detection}
[[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]]
[[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]]
]
*/
| `+__GLIBC__+`, `+__GLIBC_MINOR__+` | V.R.0
| `+__GNU_LIBRARY__+`, `+__GNU_LIBRARY_MINOR__+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_LIB_C_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,19 +13,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_C_UC`]
/* tag::reference[]
= `BOOST_LIB_C_UC`
[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library.
http://en.wikipedia.org/wiki/Uclibc[uClibc] Standard C library.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__UCLIBC__`] [__predef_detection__]]
| `+__UCLIBC__+` | {predef_detection}
[[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]]
]
*/
| `+__UCLIBC_MAJOR__+`, `+__UCLIBC_MINOR__+`, `+__UCLIBC_SUBLEVEL__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_C_UC BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,20 +13,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_C_VMS`]
/* tag::reference[]
= `BOOST_LIB_C_VMS`
VMS libc Standard C library.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__CRTL_VER`] [__predef_detection__]]
| `+__CRTL_VER+` | {predef_detection}
[[`__CRTL_VER`] [V.R.P]]
]
*/
| `+__CRTL_VER+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_C_VMS BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,21 +13,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_C_ZOS`]
/* tag::reference[]
= `BOOST_LIB_C_ZOS`
z/OS libc Standard C library.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__LIBREL__`] [__predef_detection__]]
| `+__LIBREL__+` | {predef_detection}
[[`__LIBREL__`] [V.R.P]]
[[`__TARGET_LIB__`] [V.R.P]]
]
*/
| `+__LIBREL__+` | V.R.P
| `+__TARGET_LIB__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_C_ZOS BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,25 +13,26 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_CXX`]
/* tag::reference[]
= `BOOST_LIB_STD_CXX`
[@http://libcxx.llvm.org/ libc++] C++ Standard Library.
http://libcxx.llvm.org/[libc++] {CPP} Standard Library.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`_LIBCPP_VERSION`] [__predef_detection__]]
| `+_LIBCPP_VERSION+` | {predef_detection}
[[`_LIBCPP_VERSION`] [V.0.P]]
]
*/
| `+_LIBCPP_VERSION+` | V.0.P
|===
*/ // end::reference[]
#define BOOST_LIB_STD_CXX BOOST_VERSION_NUMBER_NOT_AVAILABLE
#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

@ -13,21 +13,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_DINKUMWARE`]
/* tag::reference[]
= `BOOST_LIB_STD_DINKUMWARE`
[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library.
http://en.wikipedia.org/wiki/Dinkumware[Dinkumware] Standard {CPP} Library.
If available version number as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`_YVALS`, `__IBMCPP__`] [__predef_detection__]]
[[`_CPPLIB_VER`] [__predef_detection__]]
| `+_YVALS+`, `+__IBMCPP__+` | {predef_detection}
| `+_CPPLIB_VER+` | {predef_detection}
[[`_CPPLIB_VER`] [V.R.0]]
]
*/
| `+_CPPLIB_VER+` | V.R.0
|===
*/ // end::reference[]
#define BOOST_LIB_STD_DINKUMWARE BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,20 +13,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_COMO`]
/* tag::reference[]
= `BOOST_LIB_STD_COMO`
[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library.
http://www.comeaucomputing.com/libcomo/[Comeau Computing] Standard {CPP} Library.
Version number available as major.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__LIBCOMO__`] [__predef_detection__]]
| `+__LIBCOMO__+` | {predef_detection}
[[`__LIBCOMO_VERSION__`] [V.0.0]]
]
*/
| `+__LIBCOMO_VERSION__+` | V.0.0
|===
*/ // end::reference[]
#define BOOST_LIB_STD_COMO BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,18 +13,19 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_MSIPL`]
/* tag::reference[]
= `BOOST_LIB_STD_MSIPL`
[@http://modena.us/ Modena Software Lib++] Standard C++ Library.
http://modena.us/[Modena Software Lib++] Standard {CPP} Library.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`MSIPL_COMPILE_H`] [__predef_detection__]]
[[`__MSIPL_COMPILE_H`] [__predef_detection__]]
]
*/
| `MSIPL_COMPILE_H` | {predef_detection}
| `+__MSIPL_COMPILE_H+` | {predef_detection}
|===
*/ // end::reference[]
#define BOOST_LIB_STD_MSIPL BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,22 +13,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_MSL`]
/* tag::reference[]
= `BOOST_LIB_STD_MSL`
[@http://www.freescale.com/ Metrowerks] Standard C++ Library.
http://www.freescale.com/[Metrowerks] Standard {CPP} Library.
Version number available as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__MSL_CPP__`] [__predef_detection__]]
[[`__MSL__`] [__predef_detection__]]
| `+__MSL_CPP__+` | {predef_detection}
| `+__MSL__+` | {predef_detection}
[[`__MSL_CPP__`] [V.R.P]]
[[`__MSL__`] [V.R.P]]
]
*/
| `+__MSL_CPP__+` | V.R.P
| `+__MSL__+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_STD_MSL BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,21 +13,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_RW`]
/* tag::reference[]
= `BOOST_LIB_STD_RW`
[@http://stdcxx.apache.org/ Roguewave] Standard C++ library.
http://stdcxx.apache.org/[Roguewave] Standard {CPP} library.
If available version number as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__STD_RWCOMPILER_H__`] [__predef_detection__]]
[[`_RWSTD_VER`] [__predef_detection__]]
| `+__STD_RWCOMPILER_H__+` | {predef_detection}
| `+_RWSTD_VER+` | {predef_detection}
[[`_RWSTD_VER`] [V.R.P]]
]
*/
| `+_RWSTD_VER+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_STD_RW BOOST_VERSION_NUMBER_NOT_AVAILABLE

View File

@ -13,20 +13,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIB_STD_SGI`]
/* tag::reference[]
= `BOOST_LIB_STD_SGI`
[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library.
http://www.sgi.com/tech/stl/[SGI] Standard {CPP} library.
If available version number as major, minor, and patch.
[table
[[__predef_symbol__] [__predef_version__]]
[options="header"]
|===
| {predef_symbol} | {predef_version}
[[`__STL_CONFIG_H`] [__predef_detection__]]
| `+__STL_CONFIG_H+` | {predef_detection}
[[`__SGI_STL`] [V.R.P]]
]
*/
| `+__SGI_STL+` | V.R.P
|===
*/ // end::reference[]
#define BOOST_LIB_STD_SGI BOOST_VERSION_NUMBER_NOT_AVAILABLE

Some files were not shown because too many files have changed in this diff Show More