forked from boostorg/preprocessor
Compare commits
345 Commits
boost-1.56
...
esp-idf-co
Author | SHA1 | Date | |
---|---|---|---|
6565429eca | |||
a24f53d25c | |||
69614bb1da | |||
24abbdc906 | |||
45178c3cc5 | |||
93b896c932 | |||
229f654b59 | |||
aa8f347df2 | |||
d8471d6526 | |||
bee33b0117 | |||
b49e14231f | |||
5289c50299 | |||
5e17804af2 | |||
15dcb92ebf | |||
ae5e475169 | |||
112673238a | |||
bff73def85 | |||
5e2770334d | |||
e4186a6df1 | |||
4a274cbe86 | |||
7bed5072e4 | |||
b3f95b899f | |||
8f937e431e | |||
879e876d45 | |||
1a2e813fcb | |||
5a30bc472d | |||
d12d2d9a3a | |||
2ab48feed5 | |||
6ec9072f27 | |||
cac5e3e2ef | |||
4b1d674a17 | |||
9fcd0a289a | |||
5fd12d32d4 | |||
8288ce7575 | |||
ae836b12e4 | |||
fe22f14954 | |||
322e4266fb | |||
f74e04f827 | |||
1ace1d3806 | |||
ed066d3c81 | |||
96e994a25a | |||
ac553f44fb | |||
b93e99332b | |||
001d109eab | |||
fedfdc2f32 | |||
775f9eb24e | |||
9b8138324f | |||
158fc13f01 | |||
721ef44e79 | |||
c1eb9292d7 | |||
d49db1ef09 | |||
92ac085edf | |||
fe67cda385 | |||
a1303d0763 | |||
5c83504677 | |||
b0a0bb281c | |||
661aa5c36e | |||
a9ed92efbd | |||
f977ee0cd9 | |||
5d70c1fc7b | |||
1cf82f9928 | |||
59cdb3e5db | |||
2c20e742a1 | |||
4afae94309 | |||
44a4e07994 | |||
3f43be5b55 | |||
d86d461aa7 | |||
45565b6dc3 | |||
1fe79acc20 | |||
ff9d451901 | |||
e7b1f71c7e | |||
e44c47c9c3 | |||
0e1a2fecb1 | |||
c5fe11a649 | |||
ee0c4135c3 | |||
2fb4b3de1b | |||
585fad5198 | |||
21f796567e | |||
905520aaf8 | |||
ea15d11d2f | |||
42a283d112 | |||
aba61d6018 | |||
572f3f4d4a | |||
6272649c8f | |||
efe8cb6242 | |||
a03dd0419e | |||
9ba4469131 | |||
7e3516eb8f | |||
7e30c606b7 | |||
28a0c21651 | |||
0fbfe9c981 | |||
c8e005f696 | |||
74f652c85f | |||
b9424eac02 | |||
f10c669bab | |||
0fd6b84304 | |||
db21240060 | |||
14a263bf9d | |||
5c7ae49828 | |||
bb9d4273d4 | |||
110ddaca75 | |||
5e74d9f12e | |||
1b5c17f75b | |||
15d0d66a75 | |||
e231fe7ad9 | |||
a037024cec | |||
57c160f921 | |||
3ac4c915a3 | |||
47b430e3d5 | |||
59048974ba | |||
62da4cc84b | |||
b72dcd7958 | |||
cf34b5c21b | |||
1347313cae | |||
31704b522a | |||
f16f7721b5 | |||
43f02f9405 | |||
e8bbb16f57 | |||
25aaea0136 | |||
13c9669410 | |||
d41d1dda97 | |||
c07bb185c1 | |||
43caf4d41e | |||
a6c5cd5bcf | |||
05b3defe2f | |||
d49211a963 | |||
7541c351ce | |||
b68a2409ad | |||
0999dfe1d5 | |||
a7560df684 | |||
efa576203b | |||
fd3b57b15a | |||
c859da1fc9 | |||
efea46b2fb | |||
b95d91ee71 | |||
9bf0043260 | |||
533d636ece | |||
0dcaaac66f | |||
3b6102cd03 | |||
82addd1b28 | |||
ffb26db146 | |||
e4fb5f4866 | |||
9cf66925d4 | |||
e4ce0f06f5 | |||
98f6c75e1e | |||
f99ed9921a | |||
a378d239da | |||
0332a793f5 | |||
6c350c6fc3 | |||
728c71ba75 | |||
1ab9385a91 | |||
688c3f2ee6 | |||
bd0db5ce8b | |||
da60e76913 | |||
661dd91603 | |||
ffb27a1d56 | |||
a6404a8fb2 | |||
732d00341f | |||
e7256313c4 | |||
b3036f1a63 | |||
de49676452 | |||
4f4f04c56b | |||
c5e90f23b7 | |||
776037ae56 | |||
a9827c8fc8 | |||
6db241a78d | |||
4fe7807f79 | |||
80107ea60a | |||
1473215dc7 | |||
291f92696d | |||
771edacbff | |||
ac99242b71 | |||
bda6ad9148 | |||
88a0365f4d | |||
6af29d8b77 | |||
af70b2872e | |||
b7b1425c7f | |||
54669af127 | |||
e439b2555e | |||
4cce94a84e | |||
2f9be1086a | |||
684e9991ec | |||
a42f374b97 | |||
0cdd09e6e1 | |||
22deb165b6 | |||
e476f10f52 | |||
c436de6142 | |||
5756fb08ad | |||
9b3e6a2cd6 | |||
d135cad759 | |||
8d26689387 | |||
f78f0a1d25 | |||
87fd89a7db | |||
adf2746626 | |||
fe70754559 | |||
45588469f3 | |||
344ce6abf9 | |||
31653b34c9 | |||
a4e304ca87 | |||
0e335df79e | |||
ee5ed2510d | |||
dd44e1eea5 | |||
b5c081bf7a | |||
347f48afae | |||
49a72ac4f2 | |||
56090c56b5 | |||
00b2f44624 | |||
a329a67b47 | |||
34af3a925c | |||
ad22f9686e | |||
39175c471f | |||
aa9ee3ae3f | |||
50ffeeee8b | |||
f54e270433 | |||
08ec2abb2e | |||
c4b1ce10bd | |||
1ecc2e2ec9 | |||
b19e4deacb | |||
dfc1c46ece | |||
e474eea44f | |||
b03c6cd3c0 | |||
a6275942f3 | |||
d8389ffda6 | |||
075a3a02c8 | |||
dc41624aba | |||
4ae346bbc5 | |||
d922d757be | |||
eb143c10f8 | |||
e1e3a2e21e | |||
c2beb74b90 | |||
e70abe7b49 | |||
ee73989a21 | |||
7835ed019c | |||
3292532517 | |||
4e29a160b9 | |||
b1be22cf77 | |||
f59d83b8bf | |||
88c4282493 | |||
02ab183b96 | |||
735e301c46 | |||
e983c16e61 | |||
132eb67cec | |||
4c39e92496 | |||
2689b91d91 | |||
478bb6e10e | |||
3c3c7b42d9 | |||
3f97464c27 | |||
d4fbb8fda2 | |||
38e7f69054 | |||
3ed3cd689e | |||
fc6229660e | |||
b125850bbb | |||
350c0e59b1 | |||
2612bf706c | |||
b84235fcb7 | |||
4aa8ae8a01 | |||
9044b17f18 | |||
106f5a43a1 | |||
915ab7834c | |||
dc61cc1373 | |||
4c2c83f9f2 | |||
862f64c45c | |||
06c18a67f8 | |||
eb2a675b8f | |||
b12333b419 | |||
1543b5fbf7 | |||
86378d648e | |||
633f1e679a | |||
4360660e39 | |||
827ff0905c | |||
9cb039ab8b | |||
1b3fe1570b | |||
4f0adfb553 | |||
01848af60d | |||
dc54fee21c | |||
77a9177c31 | |||
f1165249fb | |||
fd135a078f | |||
eedd7378f1 | |||
e1ade3ea3b | |||
3760758d4e | |||
0baf10bfc6 | |||
e72b298001 | |||
f77c8f2c85 | |||
9c2ef3ae46 | |||
1a40a5ea30 | |||
15f75eca35 | |||
8924ad016f | |||
9c478f0c39 | |||
cee3323340 | |||
503175a63e | |||
46ff3eb1f4 | |||
04634b402b | |||
83f05f5325 | |||
00d05d4f04 | |||
542bd2653d | |||
fd36e236bc | |||
c4bf80ee1d | |||
2cea910cd8 | |||
4fc958a89d | |||
08c50b219d | |||
3a472c2084 | |||
4063b1564b | |||
b70598c357 | |||
56525c76cc | |||
8ac31eb612 | |||
f61bb8a80f | |||
df165d9fc6 | |||
fb732aaab5 | |||
9dfce3363c | |||
6590e41581 | |||
ec93b32f82 | |||
6c091d7f99 | |||
b3b9e80f86 | |||
ea91a3defa | |||
4ed6f6e07a | |||
2c7cf9410a | |||
975c39b910 | |||
f80bb83f3b | |||
21ccb35814 | |||
6b0be3fe4f | |||
1422fce0db | |||
9d2d1fffdf | |||
60691e3a49 | |||
3f75659921 | |||
b43a4708eb | |||
b923dadf19 | |||
e57370608e | |||
7da3c88d82 | |||
70e0f2d6e0 | |||
b03d46129c | |||
9d308c1b9d | |||
1f16a481c7 | |||
181a88db7e | |||
697ebcd840 | |||
70e775452a | |||
dec4cfd273 | |||
7da9dbb7a9 | |||
5c22605c3d | |||
4614c62130 | |||
fe2a9cbfcc | |||
c66ea5871f | |||
6fe93a542d | |||
d2bfda8308 | |||
0a23b4d6a6 |
52
.drone.star
Normal file
52
.drone.star
Normal file
@ -0,0 +1,52 @@
|
||||
# Use, modification, and distribution are
|
||||
# subject to the Boost Software License, Version 1.0. (See accompanying
|
||||
# file LICENSE.txt)
|
||||
#
|
||||
# Copyright Rene Rivera 2020.
|
||||
|
||||
# For Drone CI we use the Starlark scripting language to reduce duplication.
|
||||
# As the yaml syntax for Drone CI is rather limited.
|
||||
#
|
||||
#
|
||||
globalenv={}
|
||||
linuxglobalimage="cppalliance/droneubuntu1604:1"
|
||||
windowsglobalimage="cppalliance/dronevs2019"
|
||||
|
||||
def main(ctx):
|
||||
return [
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++ CXXSTD=03,11 Job 0", "g++", packages="", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': 'b6589fc6ab'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98 Job 1", "g++", packages="g++-4.4", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-4.4', 'CXXSTD': '98', 'DRONE_JOB_UUID': '356a192b79'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x Job 2", "g++", packages="g++-4.6", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-4.6', 'CXXSTD': '03,0x', 'DRONE_JOB_UUID': 'da4b9237ba'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11 Job 3", "g++-4.7", packages="g++-4.7", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-4.7', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': '77de68daec'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11 Job 4", "g++-4.8", packages="g++-4.8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-4.8', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': '1b64538924'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11 Job 5", "g++-4.9", packages="g++-4.9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-4.9', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': 'ac3478d69a'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z Job 6", "g++-5", packages="g++-5", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-5', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': 'c1dfd96eea'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z Job 7", "g++-6", packages="g++-6", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-6', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '902ba3cda1'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 Job 8", "g++-7", packages="g++-7", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1404:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-7', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': 'fe5dbbcea5'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17 Job 9", "g++-8", packages="g++-8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-8', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': '0ade7c2cf9'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17 Job 10", "g++-9", packages="g++-9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-9', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': 'b1d5781111'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,1 Job 11", "g++-10", packages="g++-10", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1804:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-10', 'CXXSTD': '03,11,14,17,2a', 'DRONE_JOB_UUID': '17ba079149'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++ CXXSTD=03,11 Job 12", "clang++", packages="", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': '7b52009b64'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=/usr/bin/clang++ CXXST Job 13", "/usr/bin/clang++", packages="clang-3.3", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1404:1", environment={'TOOLSET': 'clang', 'COMPILER': '/usr/bin/clang++', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': 'bd307a3ec3'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=/usr/bin/clang++ CXXST Job 14", "/usr/bin/clang++", packages="clang-3.4", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1404:1", environment={'TOOLSET': 'clang', 'COMPILER': '/usr/bin/clang++', 'CXXSTD': '03,11', 'DRONE_JOB_UUID': 'fa35e19212'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03, Job 15", "clang++", packages="clang-3.5", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-3.5', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': 'f1abd67035'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03, Job 16", "clang++", packages="clang-3.6", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-3.6', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '1574bddb75'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03, Job 17", "clang++", packages="clang-3.7", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-3.7', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '0716d9708d'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03, Job 18", "clang++-3.8", packages="clang-3.8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-3.8', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '9e6a55b6b4'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03, Job 19", "clang++-3.9", packages="clang-3.9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-3.9', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': 'b3f0c7f6bb'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03, Job 20", "clang++-4.0", packages="clang-4.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-4.0', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '91032ad7bb'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03, Job 21", "clang++-5.0", packages="clang-5.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-5.0', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '472b07b9fc'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03, Job 22", "clang++-6.0", packages="clang-6.0", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-6.0', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': '12c6fc06c9'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11 Job 23", "clang++-7", packages="clang-7", llvm_os="xenial", llvm_ver="7", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-7', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': 'd435a6cdd7'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11 Job 24", "clang++-8", packages="clang-8", llvm_os="xenial", llvm_ver="8", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-8', 'CXXSTD': '03,11,14,17', 'DRONE_JOB_UUID': '4d134bc072'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11 Job 25", "clang++-9", packages="clang-9", llvm_os="xenial", llvm_ver="9", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-9', 'CXXSTD': '03,11,14,17,2a', 'DRONE_JOB_UUID': 'f6e1126ced'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,1 Job 26", "clang++-10", packages="clang-10", llvm_os="xenial", llvm_ver="10", buildtype="boost", buildscript="drone", image=linuxglobalimage, environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-10', 'CXXSTD': '03,11,14,17,2a', 'DRONE_JOB_UUID': '887309d048'}, globalenv=globalenv),
|
||||
linux_cxx("TOOLSET=clang COMPILER=clang++-libc++ CXXSTD= Job 27", "clang++-libc++", packages="libc++-dev", buildtype="boost", buildscript="drone", image="cppalliance/droneubuntu1404:1", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++-libc++', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': 'bc33ea4e26'}, globalenv=globalenv),
|
||||
osx_cxx("TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,1 Job 28", "clang++", packages="", buildtype="boost", buildscript="drone", environment={'TOOLSET': 'clang', 'COMPILER': 'clang++', 'CXXSTD': '03,11,14,1z', 'DRONE_JOB_UUID': '0a57cb53ba'}, globalenv=globalenv),
|
||||
linux_cxx("CMAKE_TEST=1 Job 29", "g++", packages="", buildtype="cmake-test-script", buildscript="drone", image=linuxglobalimage, environment={'CMAKE_TEST': '1', 'DRONE_JOB_UUID': '7719a1c782'}, globalenv=globalenv),
|
||||
linux_cxx("CMAKE_SUBDIR_TEST=1 Job 30", "g++", packages="", buildtype="cmake-subdir-script", buildscript="drone", image=linuxglobalimage, environment={'CMAKE_SUBDIR_TEST': '1', 'DRONE_JOB_UUID': '22d200f867'}, globalenv=globalenv),
|
||||
linux_cxx("CMAKE_INSTALL_TEST=1 Job 31", "g++", packages="", buildtype="cmake-install-script", buildscript="drone", image=linuxglobalimage, environment={'CMAKE_INSTALL_TEST': '1', 'DRONE_JOB_UUID': '632667547e'}, globalenv=globalenv),
|
||||
]
|
||||
|
||||
# from https://github.com/boostorg/boost-ci
|
||||
load("@boost_ci//ci/drone/:functions.star", "linux_cxx","windows_cxx","osx_cxx","freebsd_cxx")
|
88
.drone/drone.sh
Executable file
88
.drone/drone.sh
Executable file
@ -0,0 +1,88 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
export TRAVIS_BUILD_DIR=$(pwd)
|
||||
export DRONE_BUILD_DIR=$(pwd)
|
||||
export TRAVIS_BRANCH=$DRONE_BRANCH
|
||||
export VCS_COMMIT_ID=$DRONE_COMMIT
|
||||
export GIT_COMMIT=$DRONE_COMMIT
|
||||
export REPO_NAME=$DRONE_REPO
|
||||
export PATH=~/.local/bin:/usr/local/bin:$PATH
|
||||
|
||||
if [ "$DRONE_JOB_BUILDTYPE" == "boost" ]; then
|
||||
|
||||
echo '==================================> INSTALL'
|
||||
|
||||
BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||
cd ..
|
||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
cd boost-root
|
||||
git submodule update --init tools/boostdep
|
||||
cp -r $TRAVIS_BUILD_DIR/* libs/preprocessor
|
||||
python tools/boostdep/depinst/depinst.py preprocessor
|
||||
./bootstrap.sh
|
||||
./b2 headers
|
||||
|
||||
echo '==================================> SCRIPT'
|
||||
|
||||
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
|
||||
./b2 libs/preprocessor/test -j 3 toolset=$TOOLSET cxxstd=$CXXSTD $ADDRMD
|
||||
|
||||
elif [ "$DRONE_JOB_BUILDTYPE" == "cmake-install-script" ]; then
|
||||
|
||||
echo '==================================> INSTALL'
|
||||
|
||||
BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||
cd ..
|
||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
cd boost-root
|
||||
git submodule update --init tools/boostdep
|
||||
cp -r $TRAVIS_BUILD_DIR/* libs/preprocessor
|
||||
python tools/boostdep/depinst/depinst.py preprocessor
|
||||
./bootstrap.sh
|
||||
./b2 headers
|
||||
|
||||
echo '==================================> SCRIPT'
|
||||
|
||||
mkdir __build__ && cd __build__
|
||||
cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor -DCMAKE_INSTALL_PREFIX=~/.local ..
|
||||
cmake --build . --target install
|
||||
cd ../libs/preprocessor/test/cmake_install_test && mkdir __build__ && cd __build__
|
||||
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
|
||||
cmake --build .
|
||||
cmake --build . --target check
|
||||
|
||||
elif [ "$DRONE_JOB_BUILDTYPE" == "cmake-subdir-script" ]; then
|
||||
|
||||
echo '==================================> INSTALL'
|
||||
|
||||
true
|
||||
|
||||
echo '==================================> SCRIPT'
|
||||
|
||||
cd test/cmake_subdir_test && mkdir __build__ && cd __build__
|
||||
cmake ..
|
||||
cmake --build .
|
||||
cmake --build . --target check
|
||||
|
||||
elif [ "$DRONE_JOB_BUILDTYPE" == "cmake-test-script" ]; then
|
||||
|
||||
echo '==================================> INSTALL'
|
||||
|
||||
BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||
cd ..
|
||||
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
cd boost-root
|
||||
git submodule update --init tools/boostdep
|
||||
cp -r $TRAVIS_BUILD_DIR/* libs/preprocessor
|
||||
python tools/boostdep/depinst/depinst.py preprocessor
|
||||
./bootstrap.sh
|
||||
./b2 headers
|
||||
|
||||
echo '==================================> SCRIPT'
|
||||
|
||||
mkdir __build__ && cd __build__
|
||||
cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor ..
|
||||
ctest --output-on-failure -R boost_preprocessor
|
||||
|
||||
fi
|
348
.travis.yml
Normal file
348
.travis.yml
Normal file
@ -0,0 +1,348 @@
|
||||
# Copyright 2016-2019 Peter Dimov
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
language: cpp
|
||||
|
||||
dist: xenial
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
- /feature\/.*/
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- BOGUS_JOB=true
|
||||
|
||||
matrix:
|
||||
|
||||
exclude:
|
||||
- env: BOGUS_JOB=true
|
||||
|
||||
include:
|
||||
- os: linux
|
||||
compiler: g++
|
||||
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
|
||||
|
||||
- os: linux
|
||||
compiler: g++-4.4
|
||||
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.4
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-4.6
|
||||
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.6
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-4.7
|
||||
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-4.8
|
||||
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.8
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- os: linux
|
||||
compiler: g++-4.9
|
||||
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-4.9
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-5
|
||||
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-5
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-6
|
||||
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-6
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: g++-7
|
||||
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-8
|
||||
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-8
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: g++-9
|
||||
env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-9
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
dist: bionic
|
||||
compiler: g++-10
|
||||
env: TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,2a
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- g++-10
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++
|
||||
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: /usr/bin/clang++
|
||||
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.3
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: /usr/bin/clang++
|
||||
env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.4
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.5
|
||||
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.5
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.6
|
||||
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.6
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.7
|
||||
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.8
|
||||
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.8
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-3.9
|
||||
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-3.9
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-4.0
|
||||
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-4.0
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-5.0
|
||||
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-5.0
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-6.0
|
||||
env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-6.0
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-7
|
||||
env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-7
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-xenial-7
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-8
|
||||
env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-8
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-xenial-8
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-9
|
||||
env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-9
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
|
||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
||||
|
||||
- os: linux
|
||||
compiler: clang++-10
|
||||
env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,2a
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- clang-10
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main'
|
||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
||||
|
||||
- os: linux
|
||||
dist: trusty
|
||||
compiler: clang++-libc++
|
||||
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libc++-dev
|
||||
|
||||
- os: osx
|
||||
compiler: clang++
|
||||
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||
|
||||
- os: linux
|
||||
env: CMAKE_TEST=1
|
||||
script:
|
||||
- mkdir __build__ && cd __build__
|
||||
- cmake -DBUILD_TESTING=ON -DBOOST_INCLUDE_LIBRARIES=preprocessor ..
|
||||
- cmake --build . --target tests
|
||||
- ctest --output-on-failure
|
||||
|
||||
- os: linux
|
||||
env: CMAKE_SUBDIR_TEST=1
|
||||
install: true
|
||||
script:
|
||||
- cd test/cmake_subdir_test && mkdir __build__ && cd __build__
|
||||
- cmake ..
|
||||
- cmake --build .
|
||||
- cmake --build . --target check
|
||||
|
||||
- os: linux
|
||||
env: CMAKE_INSTALL_TEST=1
|
||||
script:
|
||||
- pip install --user cmake
|
||||
- mkdir __build__ && cd __build__
|
||||
- cmake -DBOOST_INCLUDE_LIBRARIES=preprocessor -DCMAKE_INSTALL_PREFIX=~/.local ..
|
||||
- cmake --build . --target install
|
||||
- cd ../libs/preprocessor/test/cmake_install_test && mkdir __build__ && cd __build__
|
||||
- cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
|
||||
- cmake --build .
|
||||
- cmake --build . --target check
|
||||
|
||||
install:
|
||||
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||
- cd ..
|
||||
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule update --init tools/boostdep
|
||||
- cp -r $TRAVIS_BUILD_DIR/* libs/preprocessor
|
||||
- python tools/boostdep/depinst/depinst.py preprocessor
|
||||
- ./bootstrap.sh
|
||||
- ./b2 headers
|
||||
|
||||
script:
|
||||
- |-
|
||||
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
|
||||
- ./b2 libs/preprocessor/test -j 3 toolset=$TOOLSET cxxstd=$CXXSTD $ADDRMD
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: always
|
35
CMakeLists.txt
Normal file
35
CMakeLists.txt
Normal file
@ -0,0 +1,35 @@
|
||||
# Copyright 2019 Peter Dimov
|
||||
# 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
|
||||
|
||||
if(NOT DEFINED IDF_TARGET)
|
||||
|
||||
cmake_minimum_required(VERSION 3.5...3.16)
|
||||
|
||||
project(boost_preprocessor VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
|
||||
|
||||
add_library(boost_preprocessor INTERFACE)
|
||||
add_library(Boost::preprocessor ALIAS boost_preprocessor)
|
||||
|
||||
target_include_directories(boost_preprocessor INTERFACE include)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
|
||||
add_subdirectory(test)
|
||||
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
FILE(GLOB_RECURSE headers include/*.h include/*.hpp)
|
||||
|
||||
idf_component_register(
|
||||
SRCS
|
||||
${headers}
|
||||
INCLUDE_DIRS
|
||||
include
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
|
123
appveyor.yml
Normal file
123
appveyor.yml
Normal file
@ -0,0 +1,123 @@
|
||||
# Copyright 2017 Edward Diener
|
||||
# Copyright 2018 Mike Dev
|
||||
# Copyright 2019 Peter Dimov
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
version: 1.0.{build}-{branch}
|
||||
|
||||
shallow_clone: true
|
||||
|
||||
configuration:
|
||||
- boost_build_test
|
||||
- cmake_test
|
||||
- cmake_subdir_test
|
||||
- cmake_install_test
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
- /feature\/.*/
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-10.0
|
||||
ADDRMD: 32
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-11.0
|
||||
ADDRMD: 32
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-12.0
|
||||
ADDRMD: 32,64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-14.0
|
||||
ADDRMD: 32,64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
TOOLSET: msvc-14.1
|
||||
ADDRMD: 32,64
|
||||
CXXSTD: 14,17,latest
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
TOOLSET: msvc-14.2
|
||||
ADDRMD: 32,64
|
||||
CXXSTD: 14,17,latest
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
TOOLSET: msvc-14.2
|
||||
ADDRMD: 32,64
|
||||
CXXSTD: 14,17,latest
|
||||
PREPROCESSOR: /Zc:preprocessor
|
||||
|
||||
matrix:
|
||||
exclude:
|
||||
- configuration: cmake_test
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
- configuration: cmake_test
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
- configuration: cmake_test
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
|
||||
build: off
|
||||
|
||||
install:
|
||||
- set BOOST_BRANCH=develop
|
||||
- if "%APPVEYOR_REPO_BRANCH%" == "master" set BOOST_BRANCH=master
|
||||
- cd ..
|
||||
- git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule update --init tools/build
|
||||
- git submodule update --init libs/config
|
||||
- git submodule update --init tools/boostdep
|
||||
- git submodule update --init tools/boost_install
|
||||
- git submodule update --init libs/headers
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\preprocessor\
|
||||
- python tools/boostdep/depinst/depinst.py preprocessor
|
||||
|
||||
for:
|
||||
-
|
||||
matrix:
|
||||
only:
|
||||
- configuration: boost_build_test
|
||||
|
||||
test_script:
|
||||
- bootstrap
|
||||
- b2 -d0 headers
|
||||
- if not "%CXXSTD%" == "" set CXXSTD=cxxstd=%CXXSTD%
|
||||
- if not "%ADDRMD%" == "" set ADDRMD=address-model=%ADDRMD%
|
||||
- if not "%PREPROCESSOR%" == "" set PREPROCESSOR=cflags="%PREPROCESSOR%"
|
||||
- b2 libs/preprocessor/test -j3 toolset=%TOOLSET% %CXXSTD% %ADDRMD% %PREPROCESSOR% variant=debug,release
|
||||
|
||||
-
|
||||
matrix:
|
||||
only:
|
||||
- configuration: cmake_test
|
||||
|
||||
test_script:
|
||||
- mkdir __build__ && cd __build__
|
||||
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor ..
|
||||
- ctest --output-on-failure -R boost_preprocessor -C Debug
|
||||
|
||||
-
|
||||
matrix:
|
||||
only:
|
||||
- configuration: cmake_subdir_test
|
||||
|
||||
test_script:
|
||||
- cd libs/preprocessor/test/cmake_subdir_test && mkdir __build__ && cd __build__
|
||||
- cmake ..
|
||||
- cmake --build .
|
||||
- cmake --build . --target check
|
||||
|
||||
-
|
||||
matrix:
|
||||
only:
|
||||
- configuration: cmake_install_test
|
||||
|
||||
test_script:
|
||||
- mkdir __build__ && cd __build__
|
||||
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
|
||||
- cmake --build . --target install
|
||||
- cd ../libs/preprocessor/test/cmake_install_test && mkdir __build__ && cd __build__
|
||||
- cmake -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
|
||||
- cmake --build .
|
||||
- cmake --build . --target check
|
2494
doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html
Normal file
2494
doc/AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,29 +1,37 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>contents.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<style>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>contents.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
<style>
|
||||
a, a:link, a:visited { color: black; font-weight: bold; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h4><a href="http://www.boostpro.com/mplbook/preprocessor.html" target="_top">Introduction</a></h4>
|
||||
<h4><a href="topics.html">Topics</h4>
|
||||
<h4><a href="terms.html">Terminology</h4>
|
||||
<h4><a href="data.html">Data Types</h4>
|
||||
<h4><a href="ref.html">Reference</h4>
|
||||
<h4><a href="headers.html">Headers</h4>
|
||||
<h4><a href="examples.html">Examples</h4>
|
||||
<h4><a href="miscellanea.html">Miscellanea</h4>
|
||||
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002
|
||||
<EFBFBD> Copyright Paul Mensonides 2002
|
||||
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)
|
||||
-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</head>
|
||||
<body>
|
||||
<h4><a href="index.html" target="_top">Introduction</a></h4>
|
||||
<h4><a
|
||||
href="AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html"
|
||||
target="_top">Basic Intro</a></h4>
|
||||
<a href="topics.html"> </a>
|
||||
<h4><a href="topics.html">Topics</a></h4>
|
||||
<a href="topics.html"> </a>
|
||||
<h4><a href="terms.html">Terminology</a></h4>
|
||||
<a href="terms.html"> </a>
|
||||
<h4><a href="data.html">Data Types</a></h4>
|
||||
<a href="data.html"> </a>
|
||||
<h4><a href="ref.html">Reference</a></h4>
|
||||
<a href="ref.html"> </a>
|
||||
<h4><a href="headers.html">Headers</a></h4>
|
||||
<a href="headers.html"> </a>
|
||||
<h4><a href="examples.html">Examples</a></h4>
|
||||
<a href="examples.html"> </a>
|
||||
<h4><a href="miscellanea.html">Miscellanea</a></h4>
|
||||
<a href="miscellanea.html">
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002<30> Copyright Paul Mensonides 2002
|
||||
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)--> </a>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>arrays.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
@ -17,12 +18,17 @@
|
||||
size. It only requires that an element exists at a certain index. </div>
|
||||
<div> This allows macro parameters to be variable in size and allows data
|
||||
states to change size without the user explicitly keeping track of the
|
||||
size independently.</div>
|
||||
<div>With variadic macro support a <i>tuple </i>has all of the
|
||||
size independently.<br>
|
||||
<br>
|
||||
An <i>array </i>can be empty and have no elements. An empty array has a
|
||||
0 size. The notation for an empty array is '(0,())'.<br>
|
||||
<br>
|
||||
<span style="font-style: italic;"> </span></div>
|
||||
<div>A <i>tuple </i>has all of the
|
||||
functionality as an <i>array</i>, knows its own size, and is easier
|
||||
syntactically to use. Because of that an <i>array</i> should be used, as
|
||||
opposed to a <i>tuple</i>, only if your compiler does not support
|
||||
variadic macros.<br>
|
||||
syntactically to use. The only advantage an <i>array </i>has over a <i>tuple
|
||||
</i>is that an <i>array </i>can be empty while a <i>tuple </i>always
|
||||
has at least one element and therefore can never have a size of 0.<br>
|
||||
<br>
|
||||
Elements of an <i>array</i> can be extracted with <b>BOOST_PP_ARRAY_ELEM</b>,
|
||||
an <i>array's</i> size can be extracted with <b>BOOST_PP_ARRAY_SIZE</b>,
|
||||
|
@ -1,46 +1,42 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>lists.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Lists</h4>
|
||||
<div>
|
||||
A <i>list</i> is a simple cons-style list with a head and a tail.
|
||||
The head of a <i>list</i> is an element,
|
||||
and the tail is either another <i>list</i> or <b>BOOST_PP_NIL</b>.
|
||||
For example,
|
||||
</div>
|
||||
<div class="code">
|
||||
(<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>)))
|
||||
</div>
|
||||
<div>
|
||||
...is a <i>list</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div>
|
||||
This allows macro parameters to be variable in size and allows data states to change
|
||||
size without the user explicitly keeping track of the size independently.
|
||||
</div>
|
||||
<div>
|
||||
Elements of a <i>list</i> can be extracted with
|
||||
<b>BOOST_PP_LIST_FIRST</b> and <b>BOOST_PP_LIST_REST</b>.
|
||||
</div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/list_first.html">BOOST_PP_LIST_FIRST</a></li>
|
||||
<li><a href="../ref/list_rest.html">BOOST_PP_LIST_REST</a></li>
|
||||
<li><a href="../ref/nil.html">BOOST_PP_NIL</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>lists.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Lists</h4>
|
||||
<div> A <i>list</i> is a simple cons-style list with a head and a
|
||||
tail. The head of a <i>list</i> is an element, and the tail is
|
||||
either another <i>list</i> or <b>BOOST_PP_NIL</b>. For example, </div>
|
||||
<div class="code"> (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>)))
|
||||
</div>
|
||||
<div> ...is a <i>list</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div> This allows macro parameters to be variable in size and allows data
|
||||
states to change size without the user explicitly keeping track of the
|
||||
size independently.<br>
|
||||
<br>
|
||||
A list can be empty and therefore have a size of 0. An empty list is
|
||||
represented by the notation <b>BOOST_PP_NIL.<br>
|
||||
<br>
|
||||
</b></div>
|
||||
<div> Elements of a <i>list</i> can be extracted with <b>BOOST_PP_LIST_FIRST</b>
|
||||
and <b>BOOST_PP_LIST_REST</b>. </div>
|
||||
<h4>Primitives</h4>
|
||||
<ul>
|
||||
<li><a href="../ref/list_first.html">BOOST_PP_LIST_FIRST</a></li>
|
||||
<li><a href="../ref/list_rest.html">BOOST_PP_LIST_REST</a></li>
|
||||
<li><a href="../ref/nil.html">BOOST_PP_NIL</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,30 +1,23 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>sequences.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>
|
||||
Sequences
|
||||
</h4>
|
||||
<div>
|
||||
A <i>sequence</i> (abbreviated to <i>seq</i>) is a group of adjacent parenthesized elements. For example,
|
||||
</div>
|
||||
<div class="code">
|
||||
(<i>a</i>)(<i>b</i>)(<i>c</i>)
|
||||
</div>
|
||||
<div>
|
||||
...is a <i>seq</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div>
|
||||
<i>Sequences</i> are data structures that merge the properties of both <i>lists</i> and
|
||||
<i>tuples</i> with the exception that a <i>seq</i> cannot be empty.
|
||||
Therefore, an "empty" <i>seq</i> is considered a special case scenario that
|
||||
must be handled separately in C++.
|
||||
</div>
|
||||
<div class="code">
|
||||
<pre>
|
||||
#define SEQ (x)(y)(z)
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>sequences.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4> Sequences </h4>
|
||||
<div> A <i>sequence</i> (abbreviated to <i>seq</i>) is a group of adjacent
|
||||
parenthesized elements. For example, </div>
|
||||
<div class="code"> (<i>a</i>)(<i>b</i>)(<i>c</i>) </div>
|
||||
<div> ...is a <i>seq</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and <i>c</i>.
|
||||
</div>
|
||||
<div> <i>Sequences</i> are data structures that merge the properties of
|
||||
both <i>lists</i> and <i>tuples</i> with the exception that a <i>seq, </i>like
|
||||
a <i>tuple, </i>cannot be empty. Therefore, an "empty" <i>seq</i>
|
||||
is considered a special case scenario that must be handled separately in
|
||||
C++. </div>
|
||||
<div class="code">
|
||||
<pre>#define SEQ (x)(y)(z)
|
||||
#define REVERSE(s, state, elem) (elem) state
|
||||
// append to head ^
|
||||
|
||||
@ -41,35 +34,27 @@ BOOST_PP_SEQ_FOLD_RIGHT(INC, BOOST_PP_SEQ_NIL, SEQ)
|
||||
// ^
|
||||
// special placeholder that will be "eaten"
|
||||
// by appending to the tail
|
||||
</pre>
|
||||
</div>
|
||||
<div>
|
||||
<i>Sequences</i> are extremely efficient. Element access speed approaches
|
||||
random access--even with <i>seqs</i> of up to <i>256</i> elements. This
|
||||
is because element access (among other things) is implemented iteratively
|
||||
rather than recursively. Therefore, elements can be accessed at extremely
|
||||
high indices even on preprocessors with low maximum expansion depths.
|
||||
</div>
|
||||
<div>
|
||||
Elements of a <i>seq</i> can be extracted with <b>BOOST_PP_SEQ_ELEM</b>.
|
||||
</div>
|
||||
<h4>
|
||||
Primitives
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</pre> </div>
|
||||
<div> <i>Sequences</i> are extremely efficient. Element access speed
|
||||
approaches random access--even with <i>seqs</i> of up to <i>256</i>
|
||||
elements. This is because element access (among other things) is
|
||||
implemented iteratively rather than recursively. Therefore, elements
|
||||
can be accessed at extremely high indices even on preprocessors with low
|
||||
maximum expansion depths. </div>
|
||||
<div> Elements of a <i>seq</i> can be extracted with <b>BOOST_PP_SEQ_ELEM</b>.
|
||||
</div>
|
||||
<h4> Primitives </h4>
|
||||
<ul>
|
||||
<li> <a href="../ref/seq_elem.html">BOOST_PP_SEQ_ELEM</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>tuples.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
@ -9,13 +10,17 @@
|
||||
parenthesis. For example, </div>
|
||||
<div class="code"> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
|
||||
<div> ...is a <i>tuple</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
|
||||
<i>c</i>. </div>
|
||||
<i>c</i>.<br>
|
||||
<br>
|
||||
A <i>tuple </i>cannot be empty. The notation '()' as a <i>tuple </i>is
|
||||
a single element <i>tuple </i>of size 1, where the element is empty. </div>
|
||||
<div> <i>Tuples</i> are fast and easy to use. With variadic macro
|
||||
support it is not necessary to know the size of a <i>tuple; </i>without
|
||||
variadic macro support all access to <i>tuples</i> requires
|
||||
knowledge of its size. Use a <i>tuple </i>instead of an <i>array</i> if
|
||||
your compiler supports variadic macros, since a <i>tuple </i>has all of
|
||||
the functionality as an <i>array </i>and is easier syntactically to use.</div>
|
||||
support it is not necessary to know the size of a <i>tuple</i>.
|
||||
Use a <i>tuple </i>instead of an <i>array</i>, since a <i>tuple </i>has all of
|
||||
the functionality as an <i>array </i>and is easier syntactically to use.
|
||||
The only functionality an <i>array </i>has which a <i>tuple </i>does
|
||||
not have is that an <i>array </i>can be empty whereas a <i>tuple </i>cannot
|
||||
be empty.</div>
|
||||
<div> Elements of a <i>tuple</i> can be extracted with <b>BOOST_PP_TUPLE_ELEM</b>.
|
||||
</div>
|
||||
<h4>Primitives</h4>
|
||||
|
@ -54,7 +54,7 @@
|
||||
<li class="ps"><a href="headers/comparison/not_equal.html">not_equal.hpp</a></li>
|
||||
<li>config/</li>
|
||||
<li class="ps"><a href="headers/config/limits.html">limits.hpp</a></li>
|
||||
<li class="ps"><a href="headers/config/variadics.html">variadics.hpp</a></li>
|
||||
<li class="ps"><a href="headers/config/variadics.html">config.hpp</a></li>
|
||||
<li><a href="headers/control.html">control.hpp</a></li>
|
||||
<li>control/</li>
|
||||
<li class="ps"><a href="headers/control/deduce_d.html">deduce_d.hpp</a></li>
|
||||
@ -80,12 +80,16 @@
|
||||
<li><a href="headers/facilities.html">facilities.hpp</a></li>
|
||||
<li>facilities/</li>
|
||||
<li class="ps"><a href="headers/facilities/apply.html">apply.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/check_empty.html">check_empty.hpp</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/facilities/empty.html">empty.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/expand.html">expand.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/identity.html">identity.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/intercept.html">intercept.hpp</a></li>
|
||||
<li class="ps"><a href="headers/facilities/overload.html">overload.hpp</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/facilities/va_opt.html">va_opt.hpp</a>
|
||||
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="headers/for.html">for.hpp*</a></li>
|
||||
<li><a href="headers/identity.html">identity.hpp*</a></li>
|
||||
<li><a href="headers/if.html">if.hpp*</a></li>
|
||||
@ -138,8 +142,10 @@
|
||||
<li>punctuation/</li>
|
||||
<li class="ps"><a href="headers/punctuation/comma.html">comma.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/comma_if.html">comma_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/is_begin_parens.html">is_begin_parens.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren.html">paren.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/paren_if.html">paren_if.hpp</a></li>
|
||||
<li class="ps"><a href="headers/punctuation/remove_parens.html">remove_parens.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="headers/repeat.html">repeat.hpp*</a></li>
|
||||
<li><a href="headers/repeat_2nd.html">repeat_2nd.hpp*</a></li>
|
||||
<li><a href="headers/repeat_3rd.html">repeat_3rd.hpp*</a></li>
|
||||
@ -228,6 +234,7 @@
|
||||
<li><a href="headers/variadic.html">variadic.hpp</a></li>
|
||||
<li>variadic/</li>
|
||||
<li class="ps"><a href="headers/variadic/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/has_opt.html">has_opt.hpp</a> </li>
|
||||
<li class="ps"><a href="headers/variadic/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li class="ps"><a href="headers/variadic/to_array.html">to_array.hpp</a> <a
|
||||
href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
|
@ -11,7 +11,7 @@ defines a macro that converts an <i>array</i> to a <i>list</i>. </div>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/to_list.html">BOOST_PP_ARRAY_TO_LIST</a></li>
|
||||
<li><a href="../../ref/array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
|
@ -1,32 +1,35 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>config/variadics.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>config/variadics.hpp</b>
|
||||
header defines a macro for determining variadic macro support. The file
|
||||
is automatically included when needed internally. The end-user can
|
||||
include it also in order to use the macro. </div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
#include <b><boost/preprocessor/config/variadics.hpp></b>
|
||||
</div>
|
||||
<h4>
|
||||
Contents
|
||||
</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadics.html">BOOST_PP_VARIADICS</a></li></ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>config/config.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>config/config.hpp</b>
|
||||
header defines internal configuration macros as well as a macro
|
||||
for determining whether the compiler's preprocessor conforms to
|
||||
the standard. The file is automatically included whenever any
|
||||
Boost PP macros are used.The end-user can manually include it
|
||||
in order to use the BOOST_PP_IS_STANDARD macro, but normally
|
||||
should never have to do so.</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/config/config.hpp></b>
|
||||
</div>
|
||||
<h4> Contents </h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"><i><EFBFBD> Copyright Edward Diener
|
||||
2011,2014,2020</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -15,6 +15,7 @@
|
||||
<ul>
|
||||
<li><a href="facilities/apply.html"><boost/preprocessor/facilities/apply.hpp></a></li>
|
||||
<li><a href="facilities/empty.html"><boost/preprocessor/facilities/empty.hpp></a></li>
|
||||
<li><a href="facilities/check_empty.html"><boost/preprocessor/facilities/check_empty.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="facilities/expand.html"><boost/preprocessor/facilities/expand.hpp></a></li>
|
||||
<li><a href="facilities/identity.html"><boost/preprocessor/facilities/identity.hpp></a></li>
|
||||
<li><a href="facilities/intercept.html"><boost/preprocessor/facilities/intercept.hpp></a></li>
|
||||
|
29
doc/headers/facilities/check_empty.html
Normal file
29
doc/headers/facilities/check_empty.html
Normal file
@ -0,0 +1,29 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>facilities/check_empty.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>facilities/check_empty.hpp</b> header defines a variadic macro for the C++20 level that checks if its data is empty or not.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
#include <b><boost/preprocessor/facilities/check_empty.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/check_empty.html">BOOST_PP_CHECK_EMPTY</a> <a href="../../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -5,7 +5,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>facilities/identity.hpp</b> header defines a utility macro to use with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b>.
|
||||
The <b>facilities/identity.hpp</b> header defines utility macros to use with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
@ -14,11 +14,13 @@
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/identity.html">BOOST_PP_IDENTITY</a></li>
|
||||
<li><a href="../../ref/identity_n.html">BOOST_PP_IDENTITY_N</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</br><i><EFBFBD> Copyright Edward Diener 2015</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
32
doc/headers/facilities/va_opt.html
Normal file
32
doc/headers/facilities/va_opt.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>facilities/va_opt.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>facilities/va_opt.hpp</b>
|
||||
header defines a variadic macro for the C++20 level that offers a
|
||||
more flexible alternative to the __VA_OPT__ construct. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/facilities/va_opt.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/va_opt.html">BOOST_PP_VA_OPT</a> <a
|
||||
href="../../topics/variadic_macros.html#VNotation"
|
||||
target="_self">(v)</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/headers/punctuation/is_begin_parens.html
Normal file
26
doc/headers/punctuation/is_begin_parens.html
Normal file
@ -0,0 +1,26 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>punctuation/is_begin_parens.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>punctuation/is_begin_parens.hpp</b>
|
||||
header defines a macro that determines if variadic data begins with a
|
||||
parenthesis.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/punctuation/is_begin_parens.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/is_begin_parens.html">BOOST_PP_IS_BEGIN_PARENS</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
26
doc/headers/punctuation/remove_parens.html
Normal file
26
doc/headers/punctuation/remove_parens.html
Normal file
@ -0,0 +1,26 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>punctuation/remove_parens.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>punctuation/remove_parens.hpp</b>
|
||||
header defines a macro that removes the beginning parenthesis from its
|
||||
input if it exists.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> #include <b><boost/preprocessor/punctuation/remove_parens.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/remove_parens.html">BOOST_PP_REMOVE_PARENS</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -2,7 +2,7 @@
|
||||
<title>tuple/enum.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>tuple/enum.hpp</b> header defines a macro to onvert a <i>tuple</i> to its comma-separated elements.
|
||||
The <b>tuple/enum.hpp</b> header defines a macro to convert a <i>tuple</i> to its comma-separated elements.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
|
@ -14,6 +14,7 @@
|
||||
<h4>Includes</h4>
|
||||
<ul>
|
||||
<li><a href="variadic/elem.html"><boost/preprocessor/variadic/elem.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/has_opt.html"><boost/preprocessor/variadic/has_opt.hpp></a> </li>
|
||||
<li><a href="variadic/size.html"><boost/preprocessor/variadic/size.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_array.html"><boost/preprocessor/variadic/to_array.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
<li><a href="variadic/to_list.html"><boost/preprocessor/variadic/to_list.hpp></a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
|
||||
@ -22,7 +23,7 @@
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2011,2013,2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
|
25
doc/headers/variadic/has_opt.html
Normal file
25
doc/headers/variadic/has_opt.html
Normal file
@ -0,0 +1,25 @@
|
||||
<html><head>
|
||||
<title>variadic/has_opt.hpp</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../styles.css"></head><body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>variadic/has_opt.hpp</b> header defines a macro that determines whether or not the __VA_OPT__ construct is supported.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
#include <b><boost/preprocessor/variadic/has_opt.hpp></b>
|
||||
</div>
|
||||
<h4>Contents</h4>
|
||||
<ul>
|
||||
<li><a href="../../ref/variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a> <br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i></i><i><EFBFBD> Copyright Edward Diener 2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body></html>
|
@ -45,6 +45,7 @@
|
||||
<li><a href="ref/bool.html">BOOL</a></li>
|
||||
<!-- C -->
|
||||
<li><a href="ref/cat.html">CAT</a></li>
|
||||
<li><a href="ref/check_empty.html">CHECK_EMPTY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/comma.html">COMMA</a></li>
|
||||
<li><a href="ref/comma_if.html">COMMA_IF</a></li>
|
||||
<li><a href="ref/compl.html">COMPL</a></li>
|
||||
@ -99,14 +100,17 @@
|
||||
<li><a href="ref/greater_equal_d.html">GREATER_EQUAL_D</a></li>
|
||||
<!-- I -->
|
||||
<li><a href="ref/identity.html">IDENTITY</a></li>
|
||||
<li><a href="ref/identity_n.html">IDENTITY_N</a></li>
|
||||
<li><a href="ref/if.html">IF</a></li>
|
||||
<li><a href="ref/iif.html">IIF</a></li>
|
||||
<li><a href="ref/inc.html">INC</a></li>
|
||||
<li><a href="ref/include_self.html">INCLUDE_SELF</a></li>
|
||||
<li><a href="ref/indirect_self.html">INDIRECT_SELF</a></li>
|
||||
<li><a href="ref/intercept.html">INTERCEPT</a></li>
|
||||
<li><a href="ref/is_begin_parens.html">IS_BEGIN_PARENS</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/is_iterating.html">IS_ITERATING</a></li>
|
||||
<li><a href="ref/is_selfish.html">IS_SELFISH</a></li>
|
||||
<li><a href="ref/is_standard.html">IS_STANDARD</a></li>
|
||||
<li><a href="ref/iterate.html">ITERATE</a></li>
|
||||
<li><a href="ref/iteration.html">ITERATION</a></li>
|
||||
<li><a href="ref/iteration_depth.html">ITERATION_DEPTH</a></li>
|
||||
@ -209,6 +213,7 @@
|
||||
<li><a href="ref/relative_flags.html">RELATIVE_FLAGS</a></li>
|
||||
<li><a href="ref/relative_iteration.html">RELATIVE_ITERATION</a></li>
|
||||
<li><a href="ref/relative_start.html">RELATIVE_START</a></li>
|
||||
<li><a href="ref/remove_parens.html">REMOVE_PARENS</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/repeat.html">REPEAT</a></li>
|
||||
<li><a href="ref/repeat_1st.html">REPEAT_1ST*</a></li>
|
||||
<li><a href="ref/repeat_2nd.html">REPEAT_2ND*</a></li>
|
||||
@ -292,9 +297,11 @@
|
||||
<!-- U -->
|
||||
<li><a href="ref/update_counter.html">UPDATE_COUNTER</a></li>
|
||||
<!-- V -->
|
||||
<li><a href="ref/va_opt.html">VA_OPT</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/value.html">VALUE</a></li>
|
||||
<li><a href="ref/variadics.html">VARIADICS</a></li>
|
||||
<li><a href="ref/variadic_elem.html">VARIADIC_ELEM</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_has_opt.html">VARIADIC_HAS_OPT</a></li>
|
||||
<li><a href="ref/variadic_seq_to_seq.html">VARIADIC_SEQ_TO_SEQ</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_size.html">VARIADIC_SIZE</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
<li><a href="ref/variadic_to_array.html">VARIADIC_TO_ARRAY</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
|
||||
|
@ -34,7 +34,7 @@
|
||||
It is more efficient, however, to use <b>BOOST_PP_ADD_D</b> in such a situation.
|
||||
</div>
|
||||
<div>
|
||||
This macro is the most efficient when <i>x</i> is less than or equal to <i>y</i>.
|
||||
This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.
|
||||
However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.
|
||||
In other words, <i>x</i> should be the addend that is <i>most likely</i> to be the largest of the two operands.
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
||||
If the sum of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
</div>
|
||||
<div>
|
||||
This macro is the most efficient when <i>x</i> is less than or equal to <i>y</i>.
|
||||
This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.
|
||||
However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.
|
||||
In other words, <i>x</i> should be the addend that is <i>most likely</i> to be the largest of the two operands.
|
||||
</div>
|
||||
|
@ -1,37 +1,52 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_ARRAY_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_ENUM</b> macro converts an <i>array</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>.<br>
|
||||
</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_ENUM</b>(<i>array</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> whose elements are to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Remarks </h4>
|
||||
<div> This macro expands to a comma-separated list of the elements in <i>array</i>.
|
||||
For example, <b>BOOST_PP_ARRAY_ENUM</b>((3,(<i>x,</i><i>y,</i><i>z</i>)))
|
||||
expands to...
|
||||
<div> <i>x</i>, <i>y</i>, <i>z</i> </div>
|
||||
</div>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/enum.html"><boost/preprocessor/array/enum.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/enum.html">boost/preprocessor/array/enum.hpp</a>><br><br>#define ARRAY (5,(B,O,O,S,T))<br><br><a href="array_enum.html">BOOST_PP_ARRAY_ENUM</a>(ARRAY) // expands to B, O, O, S, T<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_ARRAY_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_ENUM</b>
|
||||
macro converts an <i>array</i> to its comma-separated elements.
|
||||
The comma-separated elements are in the form of <i>variadic data</i>.<br>
|
||||
</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_ENUM</b>(<i>array</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> whose elements are to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Remarks </h4>
|
||||
<div> This macro expands to a comma-separated list of the elements
|
||||
in <i>array</i>.
|
||||
For example, <b>BOOST_PP_ARRAY_ENUM</b>((3,(<i>x,</i><i>y,</i><i>z</i>)))
|
||||
expands
|
||||
to...
|
||||
<div> <i>x</i>, <i>y</i>, <i>z<br>
|
||||
</i> </div>
|
||||
</div>
|
||||
<p> In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode if the array is empty the resulting <i>variadic</i>
|
||||
<i>data</i> will be empty.</p>
|
||||
<h4> </h4>
|
||||
<h4>Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/enum.html"><boost/preprocessor/array/enum.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/enum.html">boost/preprocessor/array/enum.hpp</a>><br><br>#define ARRAY (5,(B,O,O,S,T))<br><br><a href="array_enum.html">BOOST_PP_ARRAY_ENUM</a>(ARRAY) // expands to B, O, O, S, T<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener
|
||||
2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,33 +1,41 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_ARRAY_TO_LIST</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_LIST</b>
|
||||
macro converts an <i>array</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_LIST</b>(<i>array</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl><dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted. </dd>
|
||||
</dl>
|
||||
<a href="limit_tuple.html"></a><ul>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_list.html"><boost/preprocessor/array/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_list.html">boost/preprocessor/array/to_list.hpp</a>><br><br><a href="array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a>((3, (x, y, z)))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_ARRAY_TO_LIST</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_LIST</b> macro
|
||||
converts an <i>array</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_LIST</b>(<i>array</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
</ul>
|
||||
<h4>Remarks</h4>
|
||||
<p> If the <i>array</i> to be converted is empty, as
|
||||
represented by '( 0, () )', the resulting <i>list</i> is empty, as
|
||||
represented by 'BOOST_PP_NIL'.</p>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_list.html"><boost/preprocessor/array/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_list.html">boost/preprocessor/array/to_list.hpp</a>><br><br><a
|
||||
href="array_to_list.html">BOOST_PP_ARRAY_TO_LIST</a>((3, (x, y, z)))<br> // expands to (x, (y, (z, <a
|
||||
href="nil.html">BOOST_PP_NIL</a>)))</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
s
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,31 +1,37 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_ARRAY_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_SEQ</b> macro
|
||||
converts an <i>array</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_SEQ</b>(<i>array</i>)
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl><dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_seq.html"><boost/preprocessor/array/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_seq.html">boost/preprocessor/array/to_seq.hpp</a>><br><br><a href="array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a>((3, (a, b, c))) // expands to (a)(b)(c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_ARRAY_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_SEQ</b> macro
|
||||
converts an <i>array</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_SEQ</b>(<i>array</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> If the <i>array</i> to be converted is empty, as
|
||||
represented by '( 0, () )', the resulting <i>seq</i> is undefined since a
|
||||
<i>seq</i> cannot be empty.</p>
|
||||
<h4>Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_seq.html"><boost/preprocessor/array/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_seq.html">boost/preprocessor/array/to_seq.hpp</a>><br><br><a
|
||||
href="array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a>((3, (a, b, c))) // expands to (a)(b)(c)</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,31 +1,39 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_ARRAY_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_TUPLE</b> macro
|
||||
converts an <i>array</i> to an <i>tuple</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_TUPLE</b>(<i>array</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_tuple.html"><boost/preprocessor/array/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_tuple.html">boost/preprocessor/array/to_tuple.hpp</a>><br><br>#define ARRAY (3,(a, b, c))<br><br><a href="array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a>(ARRAY) // expands to (a, b, c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_ARRAY_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_ARRAY_TO_TUPLE</b> macro
|
||||
converts an <i>array</i> to an <i>tuple</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_ARRAY_TO_TUPLE</b>(<i>array</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>array</dt>
|
||||
<dd> The <i>array</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> If the <i>array</i> to be converted is empty, as
|
||||
represented by '( 0, () )', the resulting <i>tuple</i> is undefined
|
||||
since a <i>tuple</i> cannot be empty.</p>
|
||||
<h4>Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/array/to_tuple.html"><boost/preprocessor/array/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/array/to_tuple.html">boost/preprocessor/array/to_tuple.hpp</a>><br><br>#define ARRAY (3,(a, b, c))<br><br><a
|
||||
|
||||
href="array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a>(ARRAY) // expands to (a, b, c)</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
68
doc/ref/check_empty.html
Normal file
68
doc/ref/check_empty.html
Normal file
@ -0,0 +1,68 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_CHECK_EMPTY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_CHECK_EMPTY</b> variadic macro
|
||||
checks to see if its variadic input is empty or not. It expands to 1 if its input
|
||||
is empty and expands to 0 if its input is not empty. The macro only exists when
|
||||
the compilation is at the C++20 level and the __VA_OPT__ construct is supported.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_CHECK_EMPTY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>...<br>
|
||||
</dt>
|
||||
<dd> The <i>variadic data</i> to be checked for emptiness. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
When the macro invocation BOOST_PP_VARIADIC_HAS_OPT() expands to 1, then this
|
||||
macro exists and can be invoked, otherwise this macro does not exist
|
||||
and attempting to invoke it will lead to a preprocessor error that the macro
|
||||
can not be found. Because of this condition the header file for including
|
||||
this macro includes the header file for the BOOST_PP_VARIADIC_HAS_OPT macro.<br>
|
||||
It is possible to pass data to this macro which expands to nothing, in which
|
||||
case this macro will expand to 1 just as if nothing has been passed.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/facilities/check_empty.html"><boost/preprocessor/facilities/check_empty.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/facilities/check_empty.html">boost/preprocessor/facilities/check_empty.hpp</a>>
|
||||
|
||||
# if <a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a>()
|
||||
|
||||
#define DATA
|
||||
#define OBJECT OBJECT2
|
||||
#define OBJECT2
|
||||
#define FUNC(x) FUNC2(x)
|
||||
#define FUNC2(x)
|
||||
#define FUNC_GEN(x,y) (1,2,3)
|
||||
|
||||
<a href="check_empty.html">BOOST_PP_CHECK_EMPTY</a>(DATA) // expands to 1
|
||||
<a href="check_empty.html">BOOST_PP_CHECK_EMPTY</a>(OBJECT) // expands to 1
|
||||
<a href="check_empty.html">BOOST_PP_CHECK_EMPTY</a>(FUNC(1)) // expands to 1
|
||||
<a href="check_empty.html">BOOST_PP_CHECK_EMPTY</a>(FUNC) // expands to 0
|
||||
<a href="check_empty.html">BOOST_PP_CHECK_EMPTY</a>(FUNC_GEN) // expands to 0
|
||||
|
||||
#endif
|
||||
</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2019</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -22,7 +22,7 @@
|
||||
<div>
|
||||
This macro is useful when a delay is necessary to produce the correct semantics of a macro invocation.
|
||||
For example, when a macro expands to an argument list to another macro.
|
||||
This macro will expand the the argument list on the first pass, and then rescan to expand any more macros.
|
||||
This macro will expand the argument list on the first pass, and then rescan to expand any more macros.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
|
@ -135,7 +135,6 @@ TEMPLATE_TEMPLATE(2, 4, T)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
|
58
doc/ref/identity_n.html
Normal file
58
doc/ref/identity_n.html
Normal file
@ -0,0 +1,58 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_IDENTITY_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_IDENTITY_N</b> macro expands to its first argument when invoked.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_IDENTITY_N</b>(<i>item,n</i>)(n-arguments)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>item</dt>
|
||||
<dd>
|
||||
The result of the expansion.
|
||||
</dd>
|
||||
<dt>n</dt>
|
||||
<dd>
|
||||
The number of arguments when invoked.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro is designed to be used with <b>BOOST_PP_IF</b> and <b>BOOST_PP_IIF</b> when only one of the clauses needs to be invoked.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="if.html">BOOST_PP_IF</a></li>
|
||||
<li><a href="iif.html">BOOST_PP_IIF</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/facilities/identity.html"><boost/preprocessor/facilities/identity.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>>
|
||||
#include <<a href="../headers/facilities/identity.html">boost/preprocessor/facilities/identity.hpp</a>>
|
||||
|
||||
#define MACRO_CAT(y,z) y ## z
|
||||
#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, <a href="identity_n.html">BOOST_PP_IDENTITY_N</a>(x,2), MACRO_CAT)(a,b)
|
||||
|
||||
MACRO(0) // expands to ab
|
||||
MACRO(1) // expands to x
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px"><i>© Copyright Edward Diener 2015</i></div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
47
doc/ref/is_begin_parens.html
Normal file
47
doc/ref/is_begin_parens.html
Normal file
@ -0,0 +1,47 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_IS_BEGIN_PARENS</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_IS_BEGIN_PAREN</b>S
|
||||
determines whether the input starts with a set of parenthesis.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_IS_BEGIN_PARENS</b>(...) <a href="../topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<h4> ... <span style="font-weight: normal;">
|
||||
The input as variadic data.</span></h4>
|
||||
<h4>Remarks</h4>
|
||||
<div> If the input input begins with a parenthesis, with any data within
|
||||
that parenthesis, the macro returns 1, otherwise it returns 0. Data may
|
||||
follow the beginning parenthesis and the macro still will return 1.<br>
|
||||
<br>
|
||||
For Visual Studio 2005 ( VC8 ) the input data must be a single parameter
|
||||
else a compilation error will occur.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="remove_parens.html">BOOST_PP_REMOVE_PARENS</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/punctuation/is_begin_parens.html"><boost/preprocessor/punctuation/is_begin_parens.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/punctuation/is_begin_parens.html">boost/preprocessor/punctuation/is_begin_parens.hpp</a>>
|
||||
|
||||
#define VARDATA more_data , more_params<br>#define VARDATAP ( data ) more_data , more_params<br>#define DATA data<br>#define DATAP ( data ) more_data<br>
|
||||
BOOST_PP_IS_BEGIN_PARENS(VARDATA) // expands to 0, compiler error with VC8
|
||||
BOOST_PP_IS_BEGIN_PARENS(VARDATAP) // expands to 1, compiler error with VC8<br><br>BOOST_PP_IS_BEGIN_PARENS(DATA) // expands to 0
|
||||
BOOST_PP_IS_BEGIN_PARENS(DATAP) // expands to 1<br><br>BOOST_PP_IS_BEGIN_PARENS() // expands to 0<br>
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
44
doc/ref/is_standard.html
Normal file
44
doc/ref/is_standard.html
Normal file
@ -0,0 +1,44 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_IS_STANDARD</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_IS_STANDARD </b>macro
|
||||
specifies whether the compiler's preprocessor is a standard
|
||||
conforming one or not.<br>
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"><b>BOOST_PP_IS_STANDARD()</b><br>
|
||||
</div>
|
||||
<b>Remarks</b>
|
||||
<div> The macro is a <i>function-like</i> macro taking no
|
||||
parameters. It is used to check if the compiler's preprocessor is
|
||||
standard conforming. One use for the end-user is to see if <a
|
||||
href="../topics/limitations.html">limitations</a> can be
|
||||
changed, since changes will only take affect for standard
|
||||
conforming preprocessors. The macro expands to 1 if
|
||||
the compiler's preprocessor is standard conforming and 0 if it is
|
||||
not.</div>
|
||||
<b>Requirements</b>
|
||||
<div> <b>Header:</b> <a
|
||||
href="../headers/config/variadics.html"><boost/preprocessor/config/config.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>// Beginning of source file<br><br>#include <<a href="../headers/config/variadics.html">boost/preprocessor/config/config.hpp</a>><br><br>#if <a href="variadics.html">BOOST_PP_IS_STANDARD()</a><br>#define BOOST_PP_LIMIT_MAG 512<br>#endif<br><br>#include <boost/preprocessor/arithmetic.hpp> // etc.<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2020</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,34 +1,45 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_FOR</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_FOR</b> macro defines the maximum number of <b>BOOST_PP_FOR</b> repetitions.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_FOR</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_FOR</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_FOR</b> macro
|
||||
defines the maximum number of <b>BOOST_PP_FOR</b> repetitions. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_FOR</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div>This macro expands by default to <i>256</i>. For a C++
|
||||
standard conforming preprocessor, the end-user can change this to
|
||||
512 or 1024 by defining this macro to either value before
|
||||
including any library headers, as long as the end-user also
|
||||
defines the <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
|
||||
macro to be equal to or greater than this value.</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,46 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_ITERATION</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_ITERATION</b> macro defines the maximum number of <i>local</i> and <i>file</i> iterations.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_ITERATION</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_ITERATION</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_ITERATION</b>
|
||||
macro defines the maximum number of <i>local</i> and <i>file</i>
|
||||
iterations. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_ITERATION</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro expands by default to <i>256</i>. For a C++
|
||||
standard conforming preprocessor, the end-user can change this to
|
||||
512 or 1024 by defining this macro to either value before
|
||||
including any library headers, as long as the end-user also
|
||||
defines the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
|
||||
macro to be equal to or greater than this value. <br>
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,42 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_MAG</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_MAG</b> macro defines the maximum input and result magnitudes of arithmetic.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_MAG</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_MAG</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_MAG</b> macro
|
||||
defines the maximum input and result magnitudes of arithmetic. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_MAG</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro expands by default to <i>256</i>. For a C++
|
||||
standard conforming preprocessor, the end-user can change this to
|
||||
512 or 1024 by defining this macro to either value before
|
||||
including any library headers.</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,62 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_REPEAT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_REPEAT</b> macro defines the maximum number of repetitions supported by each <b>BOOST_PP_REPEAT</b> dimension.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_REPEAT</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro current expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>BOOST_PP_LIMIT_REPEAT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_REPEAT</b>
|
||||
macro defines the maximum number of repetitions supported by each
|
||||
<b>BOOST_PP_REPEAT</b> dimension. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_REPEAT</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div>This macro expands by default to <i>256</i>. For a C++
|
||||
standard conforming preprocessor, the end-user can change this to
|
||||
512 or 1024 by defining this macro to either value before
|
||||
including any library headers, as long as the end-user also
|
||||
defines the <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
|
||||
macro to be equal to or greater than this value. <br>
|
||||
<br>
|
||||
NOTE: for the current latest versions of default preprocessor for
|
||||
Microsoft's VC++ compiler there is a nested macro limit of 256.
|
||||
This means in actuality that the number of repetitions using VC++
|
||||
is actually less than 256 depending on the repetition macro being
|
||||
used. For the BOOST_PP_REPEAT macro this limit appears to be 252
|
||||
while for the BOOST_PP_ENUM... series of macros this limit appears
|
||||
to be around 230, before the VC++ compiler gives a "C1009:
|
||||
compiler limit : macros nested too deeply" error. This is a
|
||||
compiler limitation of VC++ which may vary depending on the
|
||||
specific repetition macro being used, and therefore is not a
|
||||
problem the preprocessor library can solve. This limitation of the
|
||||
default preprocessor for VC++ does not exist for the new standard
|
||||
conforming preprocessor for VC++ in Visual Studio 2019 invoked
|
||||
with the<code> /Zc:preprocessor</code> switch.<br>
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,41 +1,44 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_SEQ</b> macro defines the maximum <i>seq</i> size
|
||||
supported by the library.
|
||||
</div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_SEQ</b>
|
||||
</div>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_SEQ</b> macro
|
||||
defines the maximum <i>seq</i> size supported by the library. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_SEQ</b> </div>
|
||||
<h4> Remarks </h4>
|
||||
<div>This macro expands by default to 256. For a C++ standard
|
||||
conforming preprocessor, the macro actually expands to the value
|
||||
of the <a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
|
||||
macro, but can be set to a lower value than BOOST_PP_LIMIT_MAG if
|
||||
desired, but never to a higher value.<br>
|
||||
</div>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,33 +1,47 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_TUPLE</b> macro defines the maximum <i>tuple</i> size supported by the library.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_TUPLE</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>64</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_TUPLE</b>
|
||||
macro defines the maximum <i>tuple/array</i> size supported by
|
||||
the library. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_TUPLE</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro expands by default to <i>64</i>. For a C++
|
||||
standard conforming preprocessor, the end-user can change this to
|
||||
128 or 256 by defining this macro to either value before including
|
||||
any library headers. If the end-user changes the value of the
|
||||
macro the <a href="../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a>
|
||||
macro is changed to the same value unless the end-user has changed
|
||||
BOOST_PP_LIMIT_VARIADIC to a higher value.<br>
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,24 +1,43 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_VARIADIC</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b> macro
|
||||
defines the maximum <i>variadic data</i> size supported by the library. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro currently expands to <i>64</i>. </div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_VARIADIC</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_VARIADIC</b>
|
||||
macro defines the maximum <i>variadic data</i>
|
||||
size supported by the library. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_VARIADIC</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div>This macro expands by default to <i>64</i>. For a C++ standard
|
||||
conforming preprocessor, the end-user can change this to 128 or
|
||||
256 by defining this macro to either value before including any
|
||||
library headers. This value can never be less than the value of <a
|
||||
href="../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a>.<br>
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<b>See also<br>
|
||||
</b>
|
||||
<ul>
|
||||
<li><a href="../topics/limitations.html">Limitations</a></li>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,34 +1,35 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIMIT_WHILE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIMIT_WHILE</b> macro defines the maximum number of <b>BOOST_PP_WHILE</b> iterations.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIMIT_WHILE</b>
|
||||
</div>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro currently expands to <i>256</i>.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_LIMIT_WHILE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIMIT_WHILE</b>
|
||||
macro defines the maximum number of <b>BOOST_PP_WHILE</b>
|
||||
iterations. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIMIT_WHILE</b> </div>
|
||||
<h4>Remarks</h4>
|
||||
<div>This macro expands by default to <i>256</i>. The macro
|
||||
actually expands to the value of the <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a>
|
||||
macro and can not be changed.</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/config/limits.html"><boost/preprocessor/config/limits.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,62 +1,62 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIST_ENUM</b> macro converts a <i>list</i> to a comma-separated list.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIST_ENUM</b>(<i>list</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd>
|
||||
The <i>list</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
|
||||
this macro will produce:
|
||||
<div>
|
||||
<i>a</i>, <i>b</i>, <i>c</i>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.
|
||||
There is no longer any such restriction.
|
||||
It is more efficient, however, to use <b>BOOST_PP_LIST_ENUM_R</b> in such a situation.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/list/enum.html"><boost/preprocessor/list/enum.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/list/enum.html">boost/preprocessor/list/enum.hpp</a>>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_LIST_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_ENUM</b> macro
|
||||
converts a <i>list</i> to a comma-separated list. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_ENUM</b>(<i>list</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>,
|
||||
<b>BOOST_PP_NIL</b>))), this macro will produce:
|
||||
<div> <i>a</i>, <i>b</i>, <i>c</i> </div>
|
||||
</div>
|
||||
<div> Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.
|
||||
|
||||
There is no longer any such restriction. It is more
|
||||
efficient, however, to use <b>BOOST_PP_LIST_ENUM_R</b> in such a
|
||||
situation.<br>
|
||||
<br>
|
||||
In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode if the list is empty the resulting <i>variadic</i>
|
||||
<i>data</i> will be empty.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_enum_r.html">BOOST_PP_LIST_ENUM_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/enum.html"><boost/preprocessor/list/enum.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/enum.html">boost/preprocessor/list/enum.hpp</a>>
|
||||
|
||||
#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
|
||||
|
||||
<a href="list_enum.html">BOOST_PP_LIST_ENUM</a>(LIST) // expands to w, x, y, z
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -31,6 +31,12 @@
|
||||
<i>a</i>, <i>b</i>, <i>c</i>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode if the list is empty the resulting <i>variadic</i>
|
||||
<i>data</i> will be empty.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_enum.html">BOOST_PP_LIST_ENUM</a></li>
|
||||
|
@ -1,39 +1,47 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY</b> macro
|
||||
converts a <i>list</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY</b>(<i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro uses <b>BOOST_PP_WHILE</b>.
|
||||
Within <b>BOOST_PP_WHILE</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_ARRAY_D</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_array.html"><boost/preprocessor/list/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/to_array.html">boost/preprocessor/list/to_array.hpp</a>><br><br>#define LIST (a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br><a href="list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a>(LIST) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY</b> macro
|
||||
converts a <i>list</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY</b>(<i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. <br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b>. Within <b>BOOST_PP_WHILE</b>,
|
||||
it is more efficient to use <b>BOOST_PP_LIST_TO_ARRAY_D</b>.<br>
|
||||
<br>
|
||||
If the <i>list</i> to be converted is empty, as represented by
|
||||
'BOOST_PP_NIL', the resulting <i>array</i> is empty, as represented by '( 0, ()
|
||||
)'.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY_D</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_array.html"><boost/preprocessor/list/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/to_array.html">boost/preprocessor/list/to_array.hpp</a>><br><br>#define LIST (a, (b, (c, <a
|
||||
|
||||
href="nil.html">BOOST_PP_NIL</a>)))<br><br><a href="list_to_array.html">BOOST_PP_LIST_TO_ARRAY</a>(LIST) // expands to (3, (a, b, c))</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,27 +1,42 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_ARRAY_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIST_TO_ARRAY_D</b> macro converts a <i>list</i> to an <i>array</i>.
|
||||
It reenters <b>BOOST_PP_WHILE</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY_D</b>(<i>d</i>, <i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd>The next available <b>BOOST_PP_WHILE</b> iteration.</dd>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_array.html"><boost/preprocessor/list/to_array.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_ARRAY_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_ARRAY_D</b> macro
|
||||
converts a <i>list</i> to an <i>array</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
with maximum efficiency. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_ARRAY_D</b>(<i>d</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd>The next available <b>BOOST_PP_WHILE</b> iteration.</dd>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> If the <i>list</i> to be converted is empty, as
|
||||
represented by 'BOOST_PP_NIL', the resulting <i>array</i> is empty, as
|
||||
represented by '( 0, () )'. </p>
|
||||
<h4>See Also</h4>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_array_d.html">BOOST_PP_LIST_TO_ARRAY</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_array.html"><boost/preprocessor/list/to_array.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,40 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ</b> macro
|
||||
converts a <i>list</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ</b>(<i>list</i>)
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl><dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro uses <b>BOOST_PP_FOR</b>.
|
||||
Within <b>BOOST_PP_FOR</b>, it is more efficient to use <b>BOOST_PP_LIST_TO_SEQ_R</b>.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_seq.html"><boost/preprocessor/list/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/to_seq.html">boost/preprocessor/list/to_seq.hpp</a>><br><br><a href="list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a>((a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))) // expands to (a)(b)(c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i>© Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ</b> macro
|
||||
converts a <i>list</i> to a <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ</b>(<i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro uses <b>BOOST_PP_FOR</b>. Within <b>BOOST_PP_FOR</b>, it
|
||||
is more efficient to use <b>BOOST_PP_LIST_TO_SEQ_R</b>.<br>
|
||||
<br>
|
||||
If the <i>list</i> to be converted is empty, as represented by
|
||||
'BOOST_PP_NIL', the resulting <i>seq</i> is undefined since a <i>seq</i>
|
||||
cannot be empty.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ_R</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_seq.html"><boost/preprocessor/list/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/to_seq.html">boost/preprocessor/list/to_seq.hpp</a>><br><br><a
|
||||
href="list_to_seq.html">BOOST_PP_LIST_TO_SEQ</a>((a, (b, (c, <a href="nil.html">BOOST_PP_NIL</a>)))) // expands to (a)(b)(c)</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,27 +1,39 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_SEQ_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css"></head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIST_TO_SEQ_R</b> macro converts a <i>list</i> to an <i>seq</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ_R</b>(<i>r</i>, <i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd>The next available <b>BOOST_PP_FOR</b> repetition.</dd>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_seq.html"><boost/preprocessor/list/to_seq.hpp></a>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_SEQ_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_SEQ_R</b> macro
|
||||
converts a <i>list</i> to a <i>seq</i>. It reenters <b>BOOST_PP_FOR</b>
|
||||
with maximum efficiency. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_SEQ_R</b>(<i>r</i>, <i>list</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
<dd>The next available <b>BOOST_PP_FOR</b> repetition.</dd>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> If the <i>list</i> to be converted is empty, as
|
||||
represented by 'BOOST_PP_NIL', the resulting <i>seq</i> is undefined
|
||||
since a <i>seq</i> cannot be empty.</p>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_seq_r.html">BOOST_PP_LIST_TO_SEQ</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_seq.html"><boost/preprocessor/list/to_seq.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i>© Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,62 +1,55 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIST_TO_TUPLE</b> macro converts a <i>list</i> to a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIST_TO_TUPLE</b>(<i>list</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd>
|
||||
The <i>list</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
|
||||
this macro will produce:
|
||||
<div>
|
||||
(<i>a</i>, <i>b</i>, <i>c</i>)
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.
|
||||
There is no longer any such restriction.
|
||||
It is more efficient, however, to use <b>BOOST_PP_LIST_TO_TUPLE_R</b> in such a situation.
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/list/to_tuple.html"><boost/preprocessor/list/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/list/to_tuple.html">boost/preprocessor/list/to_tuple.hpp</a>>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_TUPLE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_TUPLE</b> macro
|
||||
converts a <i>list</i> to a <i>tuple</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_TUPLE</b>(<i>list</i>) </div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
|
||||
this macro will produce:
|
||||
<div> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
|
||||
</div>
|
||||
<div> Previously, this macro could not be used inside <b>BOOST_PP_FOR</b>.
|
||||
There is no longer any such restriction. It is more efficient,
|
||||
however, to use <b>BOOST_PP_LIST_TO_TUPLE_R</b> in such a situation.<br>
|
||||
<br>
|
||||
If the <i>list</i> to be converted is empty, as represented by 'BOOST_PP_NIL',
|
||||
the resulting <i>tuple</i> is undefined since a <i>tuple</i> cannot be
|
||||
empty.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_tuple_r.html">BOOST_PP_LIST_TO_TUPLE_R</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_tuple.html"><boost/preprocessor/list/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/to_tuple.html">boost/preprocessor/list/to_tuple.hpp</a>>
|
||||
|
||||
#define LIST (w, (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>))))
|
||||
|
||||
<a href="list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a>(LIST) // expands to (w, x, y, z)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,47 +1,42 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_LIST_TO_TUPLE_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_LIST_TO_TUPLE_R</b> macro converts a <i>list</i> to a <i>tuple</i>.
|
||||
It reenters <b>BOOST_PP_FOR</b> with maximum efficiency.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_LIST_TO_TUPLE_R</b>(<i>r</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd>
|
||||
The next available <b>BOOST_PP_FOR</b> repetition.
|
||||
</dd>
|
||||
<dt>list</dt>
|
||||
<dd>
|
||||
The <i>list</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>, <b>BOOST_PP_NIL</b>))),
|
||||
this macro will produce:
|
||||
<div>
|
||||
(<i>a</i>, <i>b</i>, <i>c</i>)
|
||||
</div>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/list/to_tuple.html"><boost/preprocessor/list/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>
|
||||
#include <<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_LIST_TO_TUPLE_R</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_LIST_TO_TUPLE_R</b> macro
|
||||
converts a <i>list</i> to a <i>tuple</i>. It reenters <b>BOOST_PP_FOR</b>
|
||||
with maximum efficiency. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_LIST_TO_TUPLE_R</b>(<i>r</i>, <i>list</i>)
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>r</dt>
|
||||
<dd> The next available <b>BOOST_PP_FOR</b> repetition. </dd>
|
||||
<dt>list</dt>
|
||||
<dd> The <i>list</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> If <i>list</i> is, for example, (<i>a</i>, (<i>b</i>, (<i>c</i>,
|
||||
<b>BOOST_PP_NIL</b>))), this macro will produce: </p>
|
||||
<div>
|
||||
<div> (<i>a</i>, <i>b</i>, <i>c</i>) </div>
|
||||
</div>
|
||||
<h4><span style="font-weight: normal;"> If the <i>list</i> to
|
||||
be converted is empty, as represented by 'BOOST_PP_NIL', the resulting <i>tuple</i>
|
||||
is undefined since a <i>tuple</i> cannot be empty. </span></h4>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="list_to_tuple.html">BOOST_PP_LIST_TO_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/list/to_tuple.html"><boost/preprocessor/list/to_tuple.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/list/adt.html">boost/preprocessor/list/adt.hpp</a>>
|
||||
#include <<a href="../headers/list/to_tuple.html">boost/preprocessor/list/to_tuple.hpp</a>>
|
||||
#include <<a href="../headers/repetition/for.html">boost/preprocessor/repetition/for.hpp</a>>
|
||||
|
||||
@ -54,16 +49,14 @@
|
||||
<a href="for.html">BOOST_PP_FOR</a>(LIST, PRED, OP, MACRO)
|
||||
// expands to (x, y, z) (y, z) (z)
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
</br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href=
|
||||
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -34,7 +34,7 @@
|
||||
It is more efficient, however, to use <b>BOOST_PP_MUL_D</b> in such a situation.
|
||||
</div>
|
||||
<div>
|
||||
This macro is the most efficient when <i>x</i> is less than or equal to <i>y</i>.
|
||||
This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.
|
||||
However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.
|
||||
In other words, <i>x</i> should be the value that is <i>most likely</i> to be the largest of the two operands.
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
||||
If the product of <i>x</i> and <i>y</i> is greater than <b>BOOST_PP_LIMIT_MAG</b>, the result is saturated to <b>BOOST_PP_LIMIT_MAG</b>.
|
||||
</div>
|
||||
<div>
|
||||
This macro is the most efficient when <i>x</i> is less than or equal to <i>y</i>.
|
||||
This macro is the most efficient when <i>x</i> is greater than or equal to <i>y</i>.
|
||||
However, the efficiency gain is not worth actually comparing the two arguments prior to invocation.
|
||||
In other words, <i>x</i> should be the value that is <i>most likely</i> to be the largest of the two operands.
|
||||
</div>
|
||||
|
@ -1,46 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>BOOST_PP_OVERLOAD</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_OVERLOAD</b> variadic macro expands to the name of a non-variadic macro having a given number of parameters.<br>
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>prefix<br>
|
||||
</dt><dd>
|
||||
The prefix of the non-variadic macro name.
|
||||
</dd><dt>...<br>
|
||||
</dt><dd><i>
|
||||
Variadic data</i>. The number of variadic data
|
||||
elements, as determined by BOOST_PP_VARIADIC_SIZE, is appended to the
|
||||
prefix to form the output non-variadic macro name.<br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro creates a macro name which depends on the number of elements of variadic data. It should be used in the form of <br>
|
||||
BOOST_PP_OVERLOAD(MACRO_NAME_,__VA_ARGS__)(__VA_ARGS__) in order to
|
||||
call a non-variadic macro taking a given number of variadic data
|
||||
elements as non-variadic arguments. In this way one can invoke a
|
||||
variadic macro with a variable number of parameters which calls one of
|
||||
a series of non-variadic macros doing very similar things.
|
||||
</div><b>Requirements</b>
|
||||
<div> <b>Header:</b> <a href="../headers/facilities/overload.html"><boost/preprocessor/facilities/overload.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/facilities/overload.html">boost/preprocessor/facilities/overload.hpp</a>><br>#include <<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>><br>#include <<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>><br>#include <<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>><br><br>#define MACRO_1(number) MACRO_2(number,10)<br>#define MACRO_2(number1,number2) <a href="add.html">BOOST_PP_ADD</a>(number1,number2)<br><br>#define MACRO_ADD_NUMBERS(...) <a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__)<br><br>// or for Visual C++<br><br>#define MACRO_ADD_NUMBERS(...) \<br> <a href="cat.html">BOOST_PP_CAT</a>(<a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__),<a href="empty.html">BOOST_PP_EMPTY</a>())<br><br>MACRO_ADD_NUMBERS(5) // output is 15<br>MACRO_ADD_NUMBERS(3,6) // output is 9<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_OVERLOAD</b>
|
||||
variadic macro expands to the name of a non-variadic macro having
|
||||
a given number of parameters.<br>
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_OVERLOAD</b>(<i>prefix</i>,...) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>prefix<br>
|
||||
</dt>
|
||||
<dd> The prefix of the non-variadic macro name. </dd>
|
||||
<dt>...<br>
|
||||
</dt>
|
||||
<dd><i> Variadic data</i>. The number of variadic data elements,
|
||||
as determined by BOOST_PP_VARIADIC_SIZE, is appended to the
|
||||
prefix to form the output non-variadic macro name.<br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro creates a macro name which depends on the number of
|
||||
elements of variadic data. It should be used in the form of <br>
|
||||
BOOST_PP_OVERLOAD(MACRO_NAME_,__VA_ARGS__)(__VA_ARGS__) in order
|
||||
to call a non-variadic macro taking a given number of variadic
|
||||
data elements as non-variadic arguments. In this way one can
|
||||
invoke a variadic macro with a variable number of parameters which
|
||||
calls one of a series of non-variadic macros doing very similar
|
||||
things.<br>
|
||||
<br>
|
||||
In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
|
||||
20</a> mode the <i>variadic</i> <i>data</i> can be empty and
|
||||
the given number of parameters will be 0.<br>
|
||||
</div>
|
||||
<b>Requirements</b>
|
||||
<div> <b>Header:</b> <a
|
||||
href="../headers/facilities/overload.html"><boost/preprocessor/facilities/overload.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/facilities/overload.html">boost/preprocessor/facilities/overload.hpp</a>><br>#include <<a href="../headers/cat.html">boost/preprocessor/cat.hpp</a>><br>#include <<a href="../headers/facilities/empty.html">boost/preprocessor/facilities/empty.hpp</a>><br>#include <<a href="../headers/arithmetic/add.html">boost/preprocessor/arithmetic/add.hpp</a>><br><br>#define MACRO_1(number) MACRO_2(number,10)<br>#define MACRO_2(number1,number2) <a href="add.html">BOOST_PP_ADD</a>(number1,number2)<br><br>#if !BOOST_PP_VARIADICS_MSVC<br><br>#define MACRO_ADD_NUMBERS(...) <a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__)<br><br>#else<br><br>// or for Visual C++'s default preprocessor<br><br>#define MACRO_ADD_NUMBERS(...) \<br> <a href="cat.html">BOOST_PP_CAT</a>(<a href="overload.html">BOOST_PP_OVERLOAD</a>(MACRO_,__VA_ARGS__)(__VA_ARGS__),<a href="empty.html">BOOST_PP_EMPTY</a>())<br><br>#endif<br><br>MACRO_ADD_NUMBERS(5) // output is 15<br>MACRO_ADD_NUMBERS(3,6) // output is 9</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013,2016</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
44
doc/ref/remove_parens.html
Normal file
44
doc/ref/remove_parens.html
Normal file
@ -0,0 +1,44 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_REMOVE_PARENS</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_REMOVE_PAREN</b>S macro
|
||||
removes the beginning parenthesis, if it exists, from the input data and
|
||||
expands to the result</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_REMOVE_PARENS</b>(param) <a href="../topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments <span style="font-weight: normal;"></span></h4>
|
||||
<h4><span style="font-weight: normal;"> param</span>
|
||||
<span style="font-weight: normal;">
|
||||
The input data.</span></h4>
|
||||
<h4>Remarks</h4>
|
||||
<div> If the input begins with a parenthesis, with any data within that
|
||||
parenthesis, the macro removes the parenthesis and expands to the result.
|
||||
If the input does not begin with a parenthesis the macro expands to the
|
||||
input.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="is_begin_parens.html">BOOST_PP_IS_BEGIN_PARENS</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/punctuation/remove_parens.html"><boost/preprocessor/punctuation/remove_parens.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/punctuation/remove_parens.html">boost/preprocessor/punctuation/remove_parens.hpp</a>><br><br>#define DATA data<br>#define DATAP ( data ) more_data<br><br>BOOST_PP_REMOVE_PARENS(DATA) // expands to 'data'
|
||||
BOOST_PP_REMOVE_PARENS(DATAP) // expands to 'data more_data'<br>
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2014</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -79,7 +79,6 @@
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
|
@ -11,7 +11,7 @@
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_RPLACE</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||
<b>BOOST_PP_SEQ_REPLACE</b>(<i>seq</i>, <i>i</i>, <i>elem</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
|
@ -1,67 +1,55 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_SEQ_REST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_SEQ_REST_N</b> macro expands to a <i>seq</i> of all but the
|
||||
first <i>n</i> elements of a <i>seq</i>.
|
||||
</div>
|
||||
<h4>
|
||||
Usage
|
||||
</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>seq</i>)
|
||||
</div>
|
||||
<h4>
|
||||
Arguments
|
||||
</h4>
|
||||
<dl>
|
||||
<dt>n</dt>
|
||||
<dd>
|
||||
The number of elements to remove.
|
||||
</dd>
|
||||
<dt>seq</dt>
|
||||
<dd>
|
||||
The <i>seq</i> from which the elements are to be removed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>
|
||||
Remarks
|
||||
</h4>
|
||||
<div>
|
||||
This macro extracts <i>n</i> elements from the beginning of <i>seq</i> and
|
||||
returns the remainder of <i>seq</i> as a new <i>seq</i>
|
||||
</div>
|
||||
<h4>
|
||||
See Also
|
||||
</h4>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
|
||||
</ul>
|
||||
<h4>
|
||||
Requirements
|
||||
</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/seq/rest_n.html"><boost/preprocessor/seq/rest_n.hpp></a>
|
||||
</div>
|
||||
<h4>
|
||||
Sample Code
|
||||
</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>><br>#include <<a href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>><br>#include <<a href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>><br>#include <<a href="../headers/seq/rest_n.html">boost/preprocessor/seq/rest_n.hpp</a>><br>#include <<a href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>><br><br>#define NUMBERS \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \<br> (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \<br> (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \<br> (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \<br> (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \<br> (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \<br> (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \<br> (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \<br> (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \<br> (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \<br> (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \<br> (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \<br> (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \<br> (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \<br> (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \<br> (250)(251)(252)(253)(254)(255)(256) \<br> /**/<br><br>#define SUPER_ADD(x, y) <a href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))<br><br>SUPER_ADD(100, 100) // expands to 200<br><br>#define SUPER_SUB(x, y) \<br> <a href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \<br> <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \<br> <a href="inc.html">BOOST_PP_INC</a>(y), \<br> <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \<br> <a href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \<br> ) \<br> ) \<br> ) \<br> /**/<br><br>SUPER_SUB(67, 25) // expands to 42<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<title>BOOST_PP_SEQ_REST_N</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_SEQ_REST_N</b> macro
|
||||
expands to a <i>seq</i> of all but the first <i>n</i> elements of a <i>seq</i>.
|
||||
</div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_SEQ_REST_N</b>(<i>n</i>, <i>seq</i>) </div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>n</dt>
|
||||
<dd> The number of elements to remove. </dd>
|
||||
<dt>seq</dt>
|
||||
<dd> The <i>seq</i> from which the elements are to be removed. </dd>
|
||||
</dl>
|
||||
<h4> Remarks </h4>
|
||||
<div> This macro extracts <i>n</i> elements from the beginning of <i>seq</i>
|
||||
and returns the remainder of <i>seq</i> as a new <i>seq.<br>
|
||||
<br>
|
||||
</i>It is undefined behavior if <i>n </i>is greater or equal to the size
|
||||
of the <i>seq</i>. </div>
|
||||
<h4> See Also </h4>
|
||||
<ul>
|
||||
<li> <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a></li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/seq/rest_n.html"><boost/preprocessor/seq/rest_n.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/arithmetic/inc.html">boost/preprocessor/arithmetic/inc.hpp</a>><br>#include <<a
|
||||
href="../headers/seq/elem.html">boost/preprocessor/seq/elem.hpp</a>><br>#include <<a
|
||||
href="../headers/seq/first_n.html">boost/preprocessor/seq/first_n.hpp</a>><br>#include <<a
|
||||
href="../headers/seq/rest_n.html">boost/preprocessor/seq/rest_n.hpp</a>><br>#include <<a
|
||||
href="../headers/seq/size.html">boost/preprocessor/seq/size.hpp</a>><br><br>#define NUMBERS \<br> (0)(1)(2)(3)(4)(5)(6)(7)(8)(9) \<br> (10)(11)(12)(13)(14)(15)(16)(17)(18)(19) \<br> (20)(21)(22)(23)(24)(25)(26)(27)(28)(29) \<br> (30)(31)(32)(33)(34)(35)(36)(37)(38)(39) \<br> (40)(41)(42)(43)(44)(45)(46)(47)(48)(49) \<br> (50)(51)(52)(53)(54)(55)(56)(57)(58)(59) \<br> (60)(61)(62)(63)(64)(65)(66)(67)(68)(69) \<br> (70)(71)(72)(73)(74)(75)(76)(77)(78)(79) \<br> (80)(81)(82)(83)(84)(85)(86)(87)(88)(89) \<br> (90)(91)(92)(93)(94)(95)(96)(97)(98)(99) \<br> (100)(101)(102)(103)(104)(105)(106)(107)(108)(109) \<br> (110)(111)(112)(113)(114)(115)(116)(117)(118)(119) \<br> (120)(121)(122)(123)(124)(125)(126)(127)(128)(129) \<br> (130)(131)(132)(133)(134)(135)(136)(137)(138)(139) \<br> (140)(141)(142)(143)(144)(145)(146)(147)(148)(149) \<br> (150)(151)(152)(153)(154)(155)(156)(157)(158)(159) \<br> (160)(161)(162)(163)(164)(165)(166)(167)(168)(169) \<br> (170)(171)(172)(173)(174)(175)(176)(177)(178)(179) \<br> (180)(181)(182)(183)(184)(185)(186)(187)(188)(189) \<br> (190)(191)(192)(193)(194)(195)(196)(197)(198)(199) \<br> (200)(201)(202)(203)(204)(205)(206)(207)(208)(209) \<br> (210)(211)(212)(213)(214)(215)(216)(217)(218)(219) \<br> (220)(221)(222)(223)(224)(225)(226)(227)(228)(229) \<br> (230)(231)(232)(233)(234)(235)(236)(237)(238)(239) \<br> (240)(241)(242)(243)(244)(245)(246)(247)(248)(249) \<br> (250)(251)(252)(253)(254)(255)(256) \<br> /**/<br><br>#define SUPER_ADD(x, y) <a
|
||||
href="seq_elem.html">BOOST_PP_SEQ_ELEM</a>(y, <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>(x, NUMBERS))<br><br>SUPER_ADD(100, 100) // expands to 200<br><br>#define SUPER_SUB(x, y) \<br> <a
|
||||
href="seq_size.html">BOOST_PP_SEQ_SIZE</a>( \<br> <a href="seq_rest_n.html">BOOST_PP_SEQ_REST_N</a>( \<br> <a
|
||||
href="inc.html">BOOST_PP_INC</a>(y), \<br> <a href="seq_first_n.html">BOOST_PP_SEQ_FIRST_N</a>( \<br> <a
|
||||
href="inc.html">BOOST_PP_INC</a>(x), NUMBERS \<br> ) \<br> ) \<br> ) \<br> /**/<br><br>SUPER_SUB(67, 25) // expands to 42</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,58 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_EAT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_EAT</b> macro expands to a macro that eats a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> to be eaten.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version. <br>
|
||||
<br>For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> the
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as BOOST_PP_TUPLE_EAT(); you may get a warning from some compilers, but the
|
||||
functionality will still work. If you specify a size in the variadic
|
||||
version, it will be ignored, but the warning from some compilers will
|
||||
not occur.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/eat.html"><boost/preprocessor/tuple/eat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>><br>#include <<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>><br><br>#define OP(a, b) (a b)<br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>(2))(1, 2)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_eat.html">BOOST_PP_TUPLE_EAT</a>())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_EAT</b> macro
|
||||
expands to a macro that eats a <i>tuple</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_EAT</b>() <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_EAT</b>(<i>size</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> to be eaten. The argument
|
||||
is ignored.<br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>The
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as
|
||||
BOOST_PP_TUPLE_EAT(); you may get a warning from some compilers,
|
||||
but the
|
||||
functionality will still work. If you specify a size, it will be
|
||||
ignored, but the warning from some compilers will
|
||||
not occur.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/eat.html"><boost/preprocessor/tuple/eat.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/control/if.html">boost/preprocessor/control/if.hpp</a>><br>#include <<a href="../headers/tuple/eat.html">boost/preprocessor/tuple/eat.hpp</a>><br><br>#define OP(a, b) (a b)<br>#define MACRO(n) <a href="if.html">BOOST_PP_IF</a>(n, OP, <a href="tuple_eat.html">BOOST_PP_TUPLE_EAT</a>())(1, 2)<br><br>MACRO(0) // expands to nothing<br>MACRO(1) // expands to (1, 2)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,65 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_ELEM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_ELEM</b> macro extracts an element from a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)<sup></sup><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i>.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd>
|
||||
The zero-based index into the <i>tuple</i> of the element to be extracted.
|
||||
Valid values range from <i>0</i> to <i>size</i> - <i>1</i>.
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd>
|
||||
The <i>tuple</i> from which an element is to be extracted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>,
|
||||
and <i>i</i> must be less than the size of the <i>tuple</i>. <br>
|
||||
<br>You can
|
||||
invoke the variadic version as BOOST_PP_TUPLE_ELEM(<i>i</i>,<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_ELEM(<i>size</i>,<i>i</i>,<i>tuple</i>).
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/elem.html"><boost/preprocessor/tuple/elem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>><br><br>#define TUPLE (a, b, c, d)<br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 0, TUPLE) // expands to a<br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(4, 3, TUPLE) // expands to d<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(0, TUPLE) // expands to a in the variadic version<br><a href="file:///C:/Programming/VersionControl/sandbox/variadics/libs/preprocessor/doc/ref/tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, TUPLE) // expands to d in the variadic version<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ELEM</b>
|
||||
macro extracts an element from a <i>tuple</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_ELEM</b>(<i>i</i>, <i>tuple</i>)
|
||||
<a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ELEM</b>(<i>size</i>, <i>i</i>, <i>tuple</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i>. The size is ignored.<br>
|
||||
</dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based index into the <i>tuple</i> of the element to
|
||||
be extracted. Valid values range from <i>0</i> to <i>size</i>
|
||||
- <i>1</i>. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> from which an element is to be extracted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can invoke the variadic macro as BOOST_PP_TUPLE_ELEM(<i>i</i>,<i>tuple</i>),
|
||||
or BOOST_PP_TUPLE_ELEM(<i>size</i>,<i>i</i>,<i>tuple</i>) for
|
||||
backward compatibility. </div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/elem.html"><boost/preprocessor/tuple/elem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/elem.hpp</a>><br><br>#define TUPLE (a, b, c, d)<br><br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(0, TUPLE) // expands to a in the variadic version<br><a href="tuple_elem.html">BOOST_PP_TUPLE_ELEM</a>(3, TUPLE) // expands to d in the variadic version<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,55 +1,68 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_ENUM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ENUM</b> macro converts a <i>tuple</i> to its comma-separated elements. The comma-separated elements are in the form of <i>variadic data</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_ENUM</b>(<i>size,tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ENUM</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><b></b><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i>.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> whose elements are to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Remarks </h4>
|
||||
<div>
|
||||
<br>You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/enum.html"><boost/preprocessor/tuple/enum.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>><br><br>#define TUPLE (B,O,O,S,T)<br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(5,TUPLE) // expands to B, O, O, S, T<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(TUPLE) // expands to B, O, O, S, T<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_ENUM</b>
|
||||
macro converts a <i>tuple</i> to its comma-separated
|
||||
elements. The comma-separated elements are in the form of <i>variadic
|
||||
data</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_ENUM</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_ENUM</b>(<i>size,tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i>. The size is ignored.<br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> whose elements are to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Remarks </h4>
|
||||
<div>
|
||||
You can
|
||||
invoke the variadic macro <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_ENUM(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_ENUM(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/enum.html"><boost/preprocessor/tuple/enum.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/enum.html">boost/preprocessor/tuple/enum.hpp</a>><br><br>#define TUPLE (B,O,O,S,T)<br><br><a href="tuple_enum.html">BOOST_PP_TUPLE_ENUM</a>(TUPLE) // expands to B, O, O, S, T<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,33 +1,35 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_INSERT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT</b> macro
|
||||
inserts an element into an <i>tuple</i>.</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT</b>
|
||||
macro inserts an element into an <i>tuple</i>.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_INSERT</b>(<i>tuple</i>, <i>i</i>, <i>elem</i>)
|
||||
<a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_INSERT</b>(<i>tuple</i>, <i>i</i>,
|
||||
<i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> into which an element is to be inserted. </dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is to be
|
||||
inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is
|
||||
to be inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to insert. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||
</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is larger
|
||||
than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b> interally. Therefore, to
|
||||
use the <i>d</i> parameter passed from other macros that use <b>BOOST_PP_WHILE</b>,
|
||||
see <b>BOOST_PP_TUPLE_INSERT_D</b>.</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is
|
||||
larger than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<div> This macro uses <b>BOOST_PP_WHILE</b> interally.
|
||||
Therefore, to use the <i>d</i> parameter passed from other macros
|
||||
that use <b>BOOST_PP_WHILE</b>, see <b>BOOST_PP_TUPLE_INSERT_D</b>.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_insert_d.html">BOOST_PP_TUPLE_INSERT_D</a></li>
|
||||
@ -42,13 +44,16 @@
|
||||
#define TUPLE (a, b, d)
|
||||
|
||||
<a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a>(TUPLE, 2, c) // expands to (a, b, c, d)
|
||||
</pre></div>
|
||||
</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,16 +1,18 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>BOOST_PP_TUPLE_INSERT_D</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT_D</b> macro
|
||||
inserts an element into a <i>tuple</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_INSERT_D</b>
|
||||
macro inserts an element into a <i>tuple</i>. It reenters <b>BOOST_PP_WHILE</b>
|
||||
with maximum efficiency.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_INSERT_D</b>(<i>d</i>, <i>tuple</i>,
|
||||
<i>i</i>, <i>elem</i>) <a href="../topics/variadic_macros.html#VNotation"><sup>(v)</sup></a></div>
|
||||
<i>i</i>, <i>elem</i>)</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>d</dt>
|
||||
@ -18,16 +20,16 @@
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> into which an element is to be inserted.</dd>
|
||||
<dt>i</dt>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is to be
|
||||
inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dd> The zero-based position in <i>tuple</i> where an element is
|
||||
to be inserted. Valid values range from <i>0</i> to <b>BOOST_PP_TUPLE_SIZE</b>(<i>tuple</i>).</dd>
|
||||
<dt>elem</dt>
|
||||
<dd> The element to insert. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> This macro inserts <i>elem</i> before the element at index <i>i</i>.
|
||||
</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is larger
|
||||
than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<div> If the operation attempts to create an <i>tuple</i> that is
|
||||
larger than <b>BOOST_PP_LIMIT_TUPLE</b>, the result is undefined.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="tuple_insert.html">BOOST_PP_TUPLE_INSERT</a></li>
|
||||
@ -36,11 +38,13 @@
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/insert.html"><boost/preprocessor/tuple/insert.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2013</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,60 +1,69 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_REM</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_REM</b> macro expands to a macro that removes the parentheses from a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> from which the parentheses are to be removed.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i> in the non-variadic version.<br>
|
||||
<br>
|
||||
For the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> the
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as BOOST_PP_TUPLE_REM(); you may get a warning from some compilers, but the
|
||||
functionality will still work. If you specify a size in the variadic
|
||||
version, it will be ignored, but the warning from some compilers will
|
||||
not occur.<br>
|
||||
<br>Note: For Visual C++ 8.0 ( Visual Studio 2005 ) you must specify the correct <i>size</i> argument as in the non-variadic version.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>(3)(x, y, z) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>()(x, y, z) // expands to x, y, z<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REM</b> macro
|
||||
expands to a macro that removes the parentheses from a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REM</b>() <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM</b>(<i>size</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> from which the parentheses are
|
||||
to be removed. This argument is ignored.<br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>The
|
||||
size may be left out
|
||||
completely so that the macro can be invoked as
|
||||
BOOST_PP_TUPLE_REM(); you may get a warning from some compilers,
|
||||
but the
|
||||
functionality will still work. If you specify a size, it will be
|
||||
ignored, but the warning from some compilers will
|
||||
not occur.<br>
|
||||
<br>
|
||||
Note: For Visual C++ 8.0 ( Visual Studio 2005 ) you must specify
|
||||
the correct <i>size</i> argument as a non-variadic version must
|
||||
be used.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem.html">BOOST_PP_TUPLE_REM</a>()(x, y, z) // expands to x, y, z<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,61 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_REM_CTOR</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_REM_CTOR</b> macro removes the parentheses from a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> from which the parentheses are to be removed.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd>
|
||||
The <i>tuple</i> from which the parenthesis are removed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>(3, (x, y, z)) // expands to x, y, z<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>((x, y, z)) // expands to x, y, z<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REM_CTOR</b>
|
||||
macro removes the parentheses from a <i>tuple</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REM_CTOR</b>(<i>size</i>, <i>tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> from which the parentheses are
|
||||
to be removed. This argument is ignored.<br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> from which the parenthesis are removed. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can
|
||||
invoke the variadic macro <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_REM_CTOR(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REM_CTOR(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/rem.html"><boost/preprocessor/tuple/rem.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/elem.html">boost/preprocessor/tuple/rem.hpp</a>><br><br><a href="tuple_rem_ctor.html">BOOST_PP_TUPLE_REM_CTOR</a>((x, y, z)) // expands to x, y, z<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,61 +1,63 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_REVERSE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_REVERSE</b> macro reverses a <i>tuple</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> to be reversed.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd>
|
||||
The <i>tuple</i> to be reversed.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/reverse.html"><boost/preprocessor/tuple/reverse.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>(3, (x, y, z)) // expands to (z, y, x)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>((x, y, z)) // expands to (z, y, x)<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_REVERSE</b>
|
||||
macro reverses a <i>tuple</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_REVERSE</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_REVERSE</b>(<i>size</i>, <i>tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> to be reversed. The
|
||||
argument is ignored.<br>
|
||||
</dd>
|
||||
<dd> The <i>tuple</i> to be reversed. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can
|
||||
invoke the variadic macro <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_REVERSE(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_REVERSE(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/reverse.html"><boost/preprocessor/tuple/reverse.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/reverse.html">boost/preprocessor/tuple/reverse.hpp</a>><br><br><a href="tuple_reverse.html">BOOST_PP_TUPLE_REVERSE</a>((x, y, z)) // expands to (z, y, x)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,50 +1,57 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_TUPLE_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_ARRAY</b>
|
||||
macro
|
||||
converts a <i>tuple</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>size,tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i>. Valid <i>tuple</i> sizes
|
||||
range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. <br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>).<a href="../headers/seq/to_array.html"></a>
|
||||
</div>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/to_array.html"><boost/preprocessor/tuple/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>><br><br>#define TUPLE (a,b,c)<br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(3,TUPLE) // expands to (3, (a, b, c))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(TUPLE) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2011,2013</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_ARRAY</b>
|
||||
macro
|
||||
converts a <i>tuple</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_ARRAY</b>(<i>size,tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i>. The argument is ignored.<br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can
|
||||
invoke the variadic macro <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_TO_ARRAY(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_ARRAY(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.
|
||||
</div>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/to_array.html"><boost/preprocessor/tuple/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_array.html">boost/preprocessor/tuple/to_array.hpp</a>><br><br>#define TUPLE (a,b,c)<br><br><a href="tuple_to_array.html">BOOST_PP_TUPLE_TO_ARRAY</a>(TUPLE) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013,2020</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,60 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_TO_LIST</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;">
|
||||
The <b>BOOST_PP_TUPLE_TO_LIST</b> macro converts a <i>tuple</i> to a <i>list</i>.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code">
|
||||
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> to be converted.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>.
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd>
|
||||
The <i>tuple</i> to be converted.
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>).<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div>
|
||||
<b>Header:</b> <a href="../headers/tuple/to_list.html"><boost/preprocessor/tuple/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div><pre>#include <<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>(3, (x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>((x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;">
|
||||
<i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br><i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0. (See
|
||||
accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_LIST</b>
|
||||
macro converts a <i>tuple</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_TO_LIST</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_LIST</b>(<i>size</i>, <i>tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> to be converted. The
|
||||
argument is ignored.<br>
|
||||
</dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can
|
||||
invoke the variadic maco <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_TO_LIST(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_LIST(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.<br>
|
||||
</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/to_list.html"><boost/preprocessor/tuple/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_list.html">boost/preprocessor/tuple/to_list.hpp</a>><br><br><a href="tuple_to_list.html">BOOST_PP_TUPLE_TO_LIST</a>((x, y, z))<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -1,51 +1,61 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_TUPLE_TO_SEQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_SEQ</b> macro
|
||||
converts a <i>tuple</i> to an <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>)<br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>
|
||||
The size of the <i>tuple</i> to be converted.
|
||||
Valid <i>tuple</i> sizes range from <i>1</i> to <b>BOOST_PP_LIMIT_TUPLE</b>. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> The <i>size</i> argument must be the actual size of the <i>tuple</i>.<br>
|
||||
<br>
|
||||
You can
|
||||
invoke the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a> as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>).<a href="../headers/tuple/to_seq.html"></a>
|
||||
</div>
|
||||
<h4>Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/to_seq.html"><boost/preprocessor/tuple/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>(3, (a, b, c)) // expands to (a)(b)(c)<br><br>// or for the variadic version <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>((a, b, c)) // expands to (a)(b)(c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_TUPLE_TO_SEQ</b>
|
||||
macro
|
||||
converts a <i>tuple</i> to an <i>seq</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>tuple</i>) <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#VNotation"
|
||||
target="_self"><sup>(v)</sup></a><br>
|
||||
<br>
|
||||
or<br>
|
||||
<br>
|
||||
<b>BOOST_PP_TUPLE_TO_SEQ</b>(<i>size</i>, <i>tuple</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd> The size of the <i>tuple</i> to be converted. The argument
|
||||
is ignored. </dd>
|
||||
<dt>tuple</dt>
|
||||
<dd> The <i>tuple</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>You can
|
||||
invoke the variadic macro <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a>
|
||||
as BOOST_PP_TUPLE_TO_SEQ(<i>tuple</i>) or
|
||||
BOOST_PP_TUPLE_TO_SEQ(<i>size</i>,<i>tuple</i>) for backward
|
||||
compatibility.
|
||||
</div>
|
||||
<h4>Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/tuple/to_seq.html"><boost/preprocessor/tuple/to_seq.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/tuple/to_seq.html">boost/preprocessor/tuple/to_seq.hpp</a>><br><br><a href="tuple_to_seq.html">BOOST_PP_TUPLE_TO_SEQ</a>((a, b, c)) // expands to (a)(b)(c)<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a
|
||||
href="http://www.housemarque.com" target="_top">Housemarque Oy</a>
|
||||
2002</i>
|
||||
<br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2011,2013,2020</i><br>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
124
doc/ref/va_opt.html
Normal file
124
doc/ref/va_opt.html
Normal file
@ -0,0 +1,124 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;
|
||||
charset=windows-1252">
|
||||
<title>BOOST_PP_VA_OPT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VA_OPT</b> variadic
|
||||
macro is a more flexible alternative to the C++20 __VA_OPT__
|
||||
construct. It expands to either one of two inputs depending on
|
||||
whether the variadic data is empty or not, whereas the C++20
|
||||
__VA_OPT__ constructs expands to either its input or nothing
|
||||
depending on whether the variadic data is empty or not. This macro
|
||||
only exists when the compilation is at the C++20 level and the
|
||||
__VA_OPT__ construct is supported.</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VA_OPT</b>(x,y,<i>...</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<p> x<br>
|
||||
A tuple
|
||||
whose data is the macro expansion if the <i>variadic data</i> is
|
||||
<b>not</b> empty<br>
|
||||
y<br>
|
||||
A tuple
|
||||
whose data is the macro expansion if the <i>variadic data</i> is
|
||||
empty<br>
|
||||
,,,<br>
|
||||
The <i>variadic
|
||||
data</i> to be checked for emptiness<br>
|
||||
</p>
|
||||
<dl>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div> When the macro invocation BOOST_PP_VARIADIC_HAS_OPT() expands
|
||||
to 1, then this macro exists and can be invoked, otherwise this
|
||||
macro does not exist and attempting to invoke it will lead to a
|
||||
preprocessor error that the macro can not be found. Because of
|
||||
this condition the header file for including this macro includes
|
||||
the header file for the BOOST_PP_VARIADIC_HAS_OPT macro.<br>
|
||||
<br>
|
||||
The difference between this macro and the __VA_OPT__ construct
|
||||
illustrates a limitation of the latter construct with a trade off
|
||||
of simpler syntax. The differences between the __VA_OPT__
|
||||
construct and this macro are:<br>
|
||||
<ul>
|
||||
<li>The __VA_OPT__ construct offers a choice as its expansion
|
||||
only between its input preprocessing tokens or nothing (
|
||||
called a "single placemarker token" ) depending on whether the
|
||||
implicit variadic data is empty or not. There is no way using
|
||||
the __VA_OPT__ construct to specify any alternative but the
|
||||
"single placemarker token" when the variadic data is empty
|
||||
whereas any preprocessing tokens can be specified when the
|
||||
variadic data is not empty. With the BOOST_PP_VA_OPT macro the
|
||||
user can specify as its expansion preprocessing tokens both
|
||||
when the variadic data is empty and when the variadic data is
|
||||
not empty.</li>
|
||||
<li>The __VA_OPT__ construct offers a simple syntax whereas this
|
||||
macro is more verbose. The BOOST_PP_VA_OPT macro's first and
|
||||
second parameters must be Boost PP tuples of data, in order to
|
||||
expand to normal or variadic data, and the third parameter
|
||||
must be the variadic data to check for emptiness, whereas the
|
||||
__VA_OPT__ construct has an implied variadic data as
|
||||
__VA_ARGS__ to check for emptiness and can specify its
|
||||
expansion directly in terms of its input.</li>
|
||||
<li>The __VA_OPT__ construct can only be specified in the
|
||||
replacement list of some macro, whereas the BOOST_PP_VA_OPT
|
||||
macro can be used both as an alternative to the __VA_OPT__
|
||||
construct in the replacement list of some macro and anywhere
|
||||
else a macro can be used.</li>
|
||||
<li>It is impossible to have a left parenthesis '(' or a right
|
||||
parenthesis ')' as preprocessing token data within the
|
||||
__VA_OPT__ construct whereas both are possible as part of the
|
||||
expanded data for the BOOST_PP_VA_OPT macro.<br>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
The exact BOOST_PP_VA_OPT equivalent to the construct of
|
||||
'__VA_OPT__ ( pp-tokens )' in the replacement list of a macro is
|
||||
'BOOST_PP_VA_OPT (( pp-tokens ),(),__VA_ARGS__)'.</div>
|
||||
<h4>See Also</h4>
|
||||
<ul>
|
||||
<li><a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a></li>
|
||||
</ul>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a
|
||||
href="../headers/facilities/va_opt.html"><boost/preprocessor/facilities/va_opt.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/facilities/va_opt.html">boost/preprocessor/facilities/va_opt.hpp</a>>
|
||||
|
||||
# if <a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a>()
|
||||
|
||||
#define DATA
|
||||
#define OBJECT OBJECT2
|
||||
#define OBJECT2
|
||||
#define FUNC(x) FUNC2(x)
|
||||
#define FUNC2(x)
|
||||
#define FUNC_GEN(x,y) (1,2,3)
|
||||
|
||||
<a href="va_opt.html">BOOST_PP_VA_OPT</a>((1),(2),DATA) // expands to 2
|
||||
<a href="va_opt.html">BOOST_PP_VA_OPT</a>((3),(4),OBJECT) // expands to 4
|
||||
<a href="va_opt.html">BOOST_PP_VA_OPT</a>((5),(6),FUNC(1)) // expands to 6
|
||||
<a href="va_opt.html">BOOST_PP_VA_OPT</a>((7,8),(9,10),FUNC) // expands to 7,8
|
||||
<a href="va_opt.html">BOOST_PP_VA_OPT</a>((1,2,3,4,5),(6,7,8,9,10),FUNC_GEN) // expands to 1,2,3,4,5
|
||||
|
||||
#endif
|
||||
</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
63
doc/ref/variadic_has_opt.html
Normal file
63
doc/ref/variadic_has_opt.html
Normal file
@ -0,0 +1,63 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_VARIADIC_HAS_OPT</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_HAS_OPT</b> macro
|
||||
determines whether or not the C++20 __VA_OPT__ construct is supported for the compiler's preprocessor being used.
|
||||
Expands to 1 if the __VA_OPT__ construct is supported, otherwise expands to 0.
|
||||
</div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_HAS_OPT</b>() <br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>None<br>
|
||||
</dt>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<div>
|
||||
This macro only returns 1 if the compiler is compiling at its own C++20 level and
|
||||
__VA_OPT__ is supported. It is possible for a compiler to support the __VA_OPT__
|
||||
construct when not compiling at its own C++20 level, but this macro will return
|
||||
0 in that case even if __VA_OPT__ is normally supported for that level. The reason
|
||||
for this is that such a compiler may have a compiler switch, enforcing a strict
|
||||
adherence to a particular C++ standard level, which gives a warning or an error
|
||||
if __VA_OPT__ is specified below the C++20 level, and the preprocessor library
|
||||
wants to avoid that happening. Therefore the macro will only test to see whether
|
||||
or not __VA_OPT__ is supported at the C++20 level, while otherwise always returning
|
||||
0 for all lesser C++ standard levels.
|
||||
</div>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/variadic/has_opt.html"><boost/preprocessor/variadic/has_opt.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>
|
||||
#include <<a href="../headers/variadic/has_opt.html">boost/preprocessor/variadic/has_opt.hpp</a>><br>
|
||||
#if <a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a>()
|
||||
// Preprocessor code which uses __VA_OPT__
|
||||
#else
|
||||
// Preprocessor code which does not use __VA_OPT__
|
||||
#endif
|
||||
</pre>
|
||||
<br>
|
||||
or within a macro definition<br><br>
|
||||
<pre>
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <<a href="../headers/variadic/has_opt.html">boost/preprocessor/variadic/has_opt.hpp</a>><br>
|
||||
#define USE_OPT(...) BOOST_PP_IIF(<a href="variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a>(),MACRO_USING_OPT,MACRO_NOT_USING_OPT)(__VA_ARGS__)
|
||||
#define MACRO_USING_OPT(...) __VA_OPT__( preprocessor tokens ) anything
|
||||
#define MACRO_NOT_USING_OPT(...) anything
|
||||
</pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2019</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,33 +1,46 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_VARIADIC_SIZE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SIZE</b> variadic macro
|
||||
expands to the size of the <i>variadic data </i>passed to it. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>...<br>
|
||||
</dt>
|
||||
<dd> <i>Variadic data </i>whose size is to be extracted. </dd>
|
||||
</dl>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/variadic/size.html"><boost/preprocessor/variadic/size.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/size.html">boost/preprocessor/variadic/size.hpp</a>><br><br>#define VAR_DATA x, y, z<br><br><a href="variadic_size.html">BOOST_PP_VARIADIC_SIZE</a>(VAR_DATA) // expands to 3<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_VARIADIC_SIZE</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_SIZE</b>
|
||||
variadic macro
|
||||
expands to the size of the <i>variadic data </i>passed to it. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_SIZE</b>(<i>...</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>...<br>
|
||||
</dt>
|
||||
<dd> <i>Variadic data </i>whose size is to be extracted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> In <a
|
||||
href="../topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode the <i>variadic</i> <i>data</i> can be empty and
|
||||
the result will be 0.<br>
|
||||
</p>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/variadic/size.html"><boost/preprocessor/variadic/size.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/size.html">boost/preprocessor/variadic/size.hpp</a>><br><br>#define VAR_DATA x, y, z<br><br><a href="variadic_size.html">BOOST_PP_VARIADIC_SIZE</a>(VAR_DATA) // expands to 3<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,32 +1,45 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_VARIADIC_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_ARRAY</b> variadic macro
|
||||
converts <i>variadic data</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>...</dt>
|
||||
<dd> The <i>variadic data</i> to be converted. </dd>
|
||||
</dl>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a href="../headers/variadic/to_array.html"><boost/preprocessor/variadic/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/to_array.html">boost/preprocessor/variadic/to_array.hpp</a>><br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a>(VAR_DATA) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_VARIADIC_TO_ARRAY</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_ARRAY</b>
|
||||
variadic macro
|
||||
converts <i>variadic data</i> to an <i>array</i>. </div>
|
||||
<h4> Usage </h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_ARRAY</b>(<i>...</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4> Arguments </h4>
|
||||
<dl>
|
||||
<dt>...</dt>
|
||||
<dd> The <i>variadic data</i> to be converted.</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode the <i>variadic</i> <i>data</i> can be empty and
|
||||
the result will be an empty array of the form '(0,())'.</p>
|
||||
<h4> Requirements </h4>
|
||||
<div> <b>Header:</b> <a
|
||||
href="../headers/variadic/to_array.html"><boost/preprocessor/variadic/to_array.hpp></a>
|
||||
</div>
|
||||
<h4> Sample Code </h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/to_array.html">boost/preprocessor/variadic/to_array.hpp</a>><br><br>#define VAR_DATA a, b, c<br><br><a href="variadic_to_array.html">BOOST_PP_VARIADIC_TO_ARRAY</a>(VAR_DATA) // expands to (3, (a, b, c))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,31 +1,45 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>BOOST_PP_VARIADIC_TO_LIST</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_LIST</b>
|
||||
variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <a href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl><dt>...</dt>
|
||||
<dd> The <i>variadic data</i> to be converted.<br>
|
||||
</dd>
|
||||
</dl><h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a href="../headers/variadic/to_list.html"><boost/preprocessor/variadic/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/to_list.html">boost/preprocessor/variadic/to_list.hpp</a>><br><br><a href="variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a>(x, y, z)<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<title>BOOST_PP_VARIADIC_TO_LIST</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<div style="margin-left: 0px;"> The <b>BOOST_PP_VARIADIC_TO_LIST</b>
|
||||
variadic macro converts <i>variadic data</i> to a <i>list</i>. </div>
|
||||
<h4>Usage</h4>
|
||||
<div class="code"> <b>BOOST_PP_VARIADIC_TO_LIST</b>(<i>...</i>) <a
|
||||
href="../topics/variadic_macros.html#VNotation" target="_self"><sup>(v)</sup></a><br>
|
||||
</div>
|
||||
<h4>Arguments</h4>
|
||||
<dl>
|
||||
<dt>...</dt>
|
||||
<dd> The <i>variadic data</i> to be converted.<br>
|
||||
</dd>
|
||||
</dl>
|
||||
<h4>Remarks</h4>
|
||||
<p> In <a
|
||||
href="file:///E:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/topics/variadic_macros.html#C20_Support_For_Variadic_Macros">C++
|
||||
20</a> mode the <i>variadic</i> <i>data</i> can be empty and
|
||||
the result will be an empty list of the form 'BOOST_PP_NIL'.</p>
|
||||
<h4>Requirements</h4>
|
||||
<div> <b>Header:</b> <a
|
||||
href="../headers/variadic/to_list.html"><boost/preprocessor/variadic/to_list.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/variadic/to_list.html">boost/preprocessor/variadic/to_list.hpp</a>><br><br><a href="variadic_to_list.html">BOOST_PP_VARIADIC_TO_LIST</a>(x, y, z)<br> // expands to (x, (y, (z, <a href="nil.html">BOOST_PP_NIL</a>)))<br></pre>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -9,18 +9,15 @@
|
||||
<h4>Usage</h4>
|
||||
<div class="code"><b>BOOST_PP_VARIADICS</b><br>
|
||||
</div><b>Remarks</b>
|
||||
<div> The macro is an <i>object-like</i> macro. It is used in internal
|
||||
code to check for the presence of variadic macro support. It can be
|
||||
used by the end-user for the same purpose. The macro equals 1 if
|
||||
variadic macros are supported and 0 if they are not. </div><b>Requirements</b>
|
||||
<div> <b>Header:</b> <a href="../headers/config/variadics.html"><boost/preprocessor/config/variadics.hpp></a>
|
||||
</div>
|
||||
<h4>Sample Code</h4>
|
||||
<div>
|
||||
<pre>#include <<a href="../headers/config/variadics.html">boost/preprocessor/config/variadics.hpp</a>><br><br>#if <a href="variadics.html">BOOST_PP_VARIADICS</a><br>#define SOME_MACRO(...) // replacement list<br>#else<br>#define SOME_MACRO(param1,param2) // replacement list<br>#endif<br></pre>
|
||||
<div> The macro is an <i>object-like</i> macro, but has been deprecated. It was used in internal
|
||||
code to check for the presence of variadic macro support, but now is no longer used as it is always
|
||||
assumed that variadic macro support from the compiler is present. The value is always set to 1
|
||||
for backward compatibility, but no longer used internally in the library.
|
||||
</div><b>Requirements</b>
|
||||
<div> <b>Header:</b> <a href="../headers/config/variadics.html"><boost/preprocessor/config/config.hpp></a>
|
||||
</div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011</i> </div>
|
||||
<div style="margin-left: 0px;"> <i></i><i><EFBFBD> Copyright Edward Diener 2011,2014,2020</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
|
@ -104,7 +104,6 @@ ACCUMULATE_D(1, ARRAY)// expands to 10
|
||||
</pre></div>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright <a href="http://www.housemarque.com"
|
||||
|
||||
target="_top">Housemarque Oy</a> 2002</i> <br>
|
||||
<i><EFBFBD> Copyright Paul Mensonides 2002<br>
|
||||
</i><i><EFBFBD> Copyright Edward Diener 2014</i><br>
|
||||
|
@ -12,12 +12,12 @@
|
||||
<ul>
|
||||
<li><a href="add_d.html"><span style="color: gray;">BOOST_PP_ADD_D</span></a></li>
|
||||
<li><a href="div_d.html"><span style=" color: gray;">BOOST_PP_DIV_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/div_d.html"><span
|
||||
<li><a href="div_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="mod_d.html"><span style=" color: gray;">BOOST_PP_MOD_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/mod_d.html"><span
|
||||
<li><a href="mod_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="mul_d.html"><span
|
||||
style=" color: gray;">BOOST_PP_MUL_D</span></a></li>
|
||||
<li><a href="file:///C:/Programming/VersionControl/modular-boost/libs/preprocessor/doc/ref/mul_d.html"><span
|
||||
<li><a href="mul_d.html"><span
|
||||
style=" color: gray;"></span></a><a href="sub_d.html"><span
|
||||
style=" color: gray;">BOOST_PP_SUB_D</span></a></li>
|
||||
</ul>
|
||||
@ -29,10 +29,12 @@
|
||||
</ul>
|
||||
comparison<br>
|
||||
<ul>
|
||||
<li><a href="equal_d.html"><span style=" color: gray;">BOOST_PP_EQUAL_D</span></a></li>
|
||||
<li><a href="greater_d.html"><span style=" color: gray;">BOOST_PP_GREATER_D</span></a></li>
|
||||
<li><a href="greater_equal_d.html"><span style=" color: gray;">BOOST_PP_GREATER_EQUAL_D</span></a></li>
|
||||
<li><a href="less_d.html"><span style=" color: gray;">BOOST_PP_LESS_D</span></a></li>
|
||||
<li><a href="less_equal_d.html"><span style=" color: gray;">BOOST_PP_LESS_EQUAL_D</span></a></li>
|
||||
<li><a href="not_equal_d.html"><span style=" color: gray;">BOOST_PP_NOT_EQUAL_D</span></a></li>
|
||||
</ul>
|
||||
control<br>
|
||||
<ul>
|
||||
@ -51,6 +53,7 @@
|
||||
<li><a href="list_fold_right_d.html"><span style=" color: gray;">BOOST_PP_LIST_FOLD_RIGHT_d</span></a></li>
|
||||
<li><a href="list_rest_n_d.html"><span style=" color: gray;">BOOST_PP_LIST_REST_N_D</span></a></li>
|
||||
<li><a href="list_reverse_d.html"><span style=" color: gray;">BOOST_PP_LIST_REVERSE_D</span></a></li>
|
||||
<li><a href="list_size_d.html"><span style=" color: gray;">BOOST_PP_LIST_SIZE_D</span></a></li>
|
||||
<li><a href="list_to_array_d.html"><span style=" color: gray;">BOOST_PP_LIST_TO_ARRAY_D</span></a></li>
|
||||
<li><a href="list_transform_d.html"><span style=" color: gray;">BOOST_PP_LIST_TRANSFORM_D</span></a></li>
|
||||
</ul>
|
||||
|
@ -284,6 +284,7 @@
|
||||
<!-- V -->
|
||||
<br>BOOST_PP_VALUE
|
||||
<br>BOOST_PP_VARIADIC_ELEM
|
||||
<br>BOOST_PP_VARIADIC_HAS_OPT
|
||||
<br>BOOST_PP_VARIADIC_SIZE
|
||||
<br>BOOST_PP_VARIADIC_TO_ARRAY
|
||||
<br>BOOST_PP_VARIADIC_TO_LIST
|
||||
|
@ -1,25 +1,37 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>title.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<h4>Introduction</h4>
|
||||
<div> The Boost Preprocessing library is a library of macros, with support
|
||||
for preprocessor metaprogramming. The library supports both C++ and C
|
||||
compilation. It does not depend on any other Boost libraries and therefore
|
||||
may be used as a standalone library. </div>
|
||||
<div> An excerpt from <i>C++ Template Metaprogramming: Concepts, Tools, and
|
||||
Techniques from Boost and Beyond</i> by Dave Abrahams and Aleksey
|
||||
Gurtovoy has been made available <a href="http://www.boostpro.com/mplbook/preprocessor.html"
|
||||
target="_top"><font color="blue"><b><u><i>online</i></u></b></font></a>.
|
||||
This excerpt contains a basic introduction to the Preprocessor library and
|
||||
preprocessor metaprogramming which may help users new to the library and
|
||||
users interested in seeing some of the facilities offered by the library.
|
||||
<div> The Boost Preprocessing library is a library of macros, with
|
||||
support for preprocessor metaprogramming. The library supports
|
||||
both C++ and C compilation. It does not depend on any other Boost
|
||||
libraries and therefore may be used as a standalone library.<br>
|
||||
</div>
|
||||
<div>The library requires that the compiler supports <a
|
||||
href="topics/variadic_macros.html">variadic macros</a>. Since
|
||||
variadic macros are a C99 or C++11 feature the library ostensibly
|
||||
requires at least compilation at those C or C++ standard levels. A
|
||||
number of compilers support variadic macros at a lower level, so
|
||||
it still may be possible using the library at that compilation
|
||||
level, as long as strict C++98/C++03 compliance is not enforced.<br>
|
||||
</div>
|
||||
<div> An excerpt from <i>C++ Template Metaprogramming: Concepts,
|
||||
Tools, and Techniques from Boost and Beyond</i> by Dave Abrahams
|
||||
and Aleksey Gurtovoy has been made <a
|
||||
href="AppendixA-AnIntroductiontoPreprocessorMetaprogramming.html"
|
||||
target="_top"><font color="blue"><b><u><i>available</i></u></b></font></a>.
|
||||
This excerpt contains a basic introduction to the Preprocessor
|
||||
library and preprocessor metaprogramming which may help users new
|
||||
to the library and users interested in seeing some of the
|
||||
facilities offered by the library. </div>
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002<30> Copyright Paul Mensonides 2002
|
||||
Distributed under the Boost Software License, Version 1.0.(See accompanying file LICENSE_1_0.txt or copy at
|
||||
<EFBFBD> Copyright Housemarque Oy 2002<30> Copyright Paul Mensonides 2002Distributed 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)-->
|
||||
</body>
|
||||
</html>
|
||||
|
@ -15,10 +15,13 @@
|
||||
<li><a href="topics/file_iteration.html">file iteration</a></li>
|
||||
<li><a href="topics/evaluated_slots.html">evaluated slots</a></li>
|
||||
<li><a href="topics/variadic_macros.html">variadic macros</a></li>
|
||||
<li><a href="topics/emptiness.html">emptiness</a></li>
|
||||
<li><a href="topics/limitations.html">limitations</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<EFBFBD> Copyright Housemarque Oy 2002
|
||||
<EFBFBD> Copyright Paul Mensonides 2002
|
||||
<EFBFBD> Copyright Edward Diener 2020
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
209
doc/topics/emptiness.html
Normal file
209
doc/topics/emptiness.html
Normal file
@ -0,0 +1,209 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>emptiness.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<style>
|
||||
u { font-weight: normal; text-decoration: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h4>Passing nothing</h4>
|
||||
<div> Although rarely desirable it has always been legal in C++ to
|
||||
pass nothing, aka no preprocessor tokens, as an argument when
|
||||
invoking a macro, whether the equivalent parameter be a regular
|
||||
parameter or a variadic one. </div>
|
||||
<div class="code">
|
||||
<pre> #define SOME_MACRO(Parameter1,Parameter2) macro expansion using Parameter1 and Parameter2
|
||||
#define SOME_VARIADIC_MACRO(Parameter1,...) macro expansion using Parameter1 and __VA_ARGS__
|
||||
|
||||
SOME_MACRO(a,b) // Normal
|
||||
SOME_MACRO(a,) // Legal, second argument is empty
|
||||
SOME_MACRO(,b) // Legal, first argument is empty
|
||||
SOME_MACRO(a) // Preprocessor error, passing the wrong number of arguments
|
||||
|
||||
SOME_VARIADIC_MACRO(a,b,c,d) // Normal
|
||||
SOME_VARIADIC_MACRO(a,) // Legal, variadic argument is empty
|
||||
SOME_VARIADIC_MACRO(,b,c,d) // Legal, first argument is empty
|
||||
SOME_VARIADIC_MACRO(a) /* Preprocessor error in standard below C++20 level,
|
||||
but in C++20 exactly equivalent to SOME_VARIADIC_MACRO(a,) */</pre>
|
||||
</div>
|
||||
<h4>Expanding to nothing</h4>
|
||||
<div> Given certain arguments a macro might expand to nothing, aka
|
||||
no preprocessor tokens. This may happen more than in the previous
|
||||
case of an argument to a macro being nothing because the expansion
|
||||
of a macro is often used to initialize some C++ construct, and C++
|
||||
has some places where a part of a compile-time construct can be
|
||||
empty. However a macro which expands to nothing rarely occurs when
|
||||
that macro's expansion is used as an argument to another macro
|
||||
because we would again have a macro where we are passing nothing
|
||||
as an argument. </div>
|
||||
<div class="code">
|
||||
<pre> #define ANOTHER_MACRO(Parameter1,Parameter2) /* expands to nothing when Parameter1 and Parameter2
|
||||
are numbers, otherwise expands to some preprocessing
|
||||
token, such as '1' */
|
||||
|
||||
int another_int = { ANOTHER_MACRO(x,y) }; // ANOTHER_MACRO Expands to 1
|
||||
int some_int = { ANOTHER_MACRO(1,2) }; // ANOTHER_MACRO Expands to nothing
|
||||
SOME_MACRO(ANOTHER_MACRO(x,y),z) // Normal, ANOTHER_MACRO Expands to 1
|
||||
SOME_MACRO(ANOTHER_MACRO(1,2),z) // Legal, first argument is empty as ANOTHER_MACRO Expands to nothing</pre>
|
||||
</div>
|
||||
<h4>Emptiness defined</h4>
|
||||
<div> Passing nothing as a macro argument or a macro expanding to
|
||||
nothing I term as 'emptiness', as 'nothing' is too amorphous a
|
||||
term which can be used in too many other contexts for my liking.
|
||||
In the vast majority of cases when designing a macro for use
|
||||
emptiness is not a part of such a design, and passing emptiness as
|
||||
an argument or expanding to emptiness is not anything that someone
|
||||
writing a macro takes into account when he explains to other
|
||||
programmers how a macro should be used.<br>
|
||||
<br>
|
||||
Other than the fact that macros are generally created so that some
|
||||
actual preprocessor data of a particular kind needs to be passed
|
||||
as arguments or gets generated as part of macro expansion when a
|
||||
macro is invoked, there is another very good reason why working
|
||||
with emptiness is not part of a macro's design: there has been no
|
||||
perfectly fail-safe way to test for emptiness during macro
|
||||
expansion, whether it be in creating macros using just the
|
||||
facilities of the C++ standard or using a 3rd party library, such
|
||||
as this Boost preprocessor library. When I say 'fail-safe' I mean
|
||||
that there has always been some argument input, no matter how
|
||||
small the number of potential cases, where a macro designed to
|
||||
test whether or not the preprocessor data passed to it as an
|
||||
argument when the macro is invoked is actually empty fails in some
|
||||
way, with the failure normally occurring as a preprocessor error.<br>
|
||||
<br>
|
||||
Of course this does not mean that the best macro designed to test
|
||||
for emptiness will not work correctly the vast majority of the
|
||||
time. It only means that there has been no guarantee that such a
|
||||
macro will work correctly all 100% of the time. Nonetheless there
|
||||
have been uses of testing for emptiness, when a macro documents
|
||||
what a particular argument should generally consist of, even if
|
||||
the test is not guaranteed to work 100% of the time if particular
|
||||
unexpected argument data does get passed. </div>
|
||||
<h4>A C++20 solution for testing for emptiness</h4>
|
||||
<div> The C++ standard committee recognized, in the upcoming
|
||||
specification for the C++20 standard, that a way of testing
|
||||
whether variadic data is empty or not in the expansion of a
|
||||
variadic macro would be very useful when designing certain types
|
||||
of macros. Because of this the C++20 standard added a preprocessor
|
||||
construct which could do this in a certain way for variadic data
|
||||
in the expansion of a variadic macro. The construct is called
|
||||
__VA_OPT__, as in '__VA_OPT__ ( prepocessing tokens )' specified
|
||||
in the replacement list of a variadic macro. <br>
|
||||
<br>
|
||||
The way that the __VA_OPT__ constructs works is that if the
|
||||
variadic arguments to the variadic macro are empty or expand to
|
||||
emptiness then the __VA_OPT__ construct and its enclosed
|
||||
preprocessing token data expands to nothing, or in C++ terms "a
|
||||
single placemarker preprocessing token". Otherwise the __VA_OPT__
|
||||
construct expands to its enclosed preprocessing tokens. A further,
|
||||
possibly unintended, upshot of adding the __VA_OPT__ construct to
|
||||
C++20 is that it is now possible to create a variadic macro which
|
||||
is 100% reliable in testing for emptiness whenever a compiler
|
||||
supports the __VA_OPT__ construct in its compilation of
|
||||
preprocessor code.<br>
|
||||
<br>
|
||||
For such a macro to always work which tests for emptiness the code
|
||||
must know when the __VA_OPT__ construct is available. It is not
|
||||
enough to know that a compiler is working at the C++20 level,
|
||||
since as all C++ programmers know an adherence to a C++ standard
|
||||
level never guarantees that a particular compiler supports every
|
||||
aspect of that level. Happily there is a way to test whether a
|
||||
compiler supports the __VA_OPT__ construct as long as the compiler
|
||||
supports variadic macros, and that way has been openly published
|
||||
on the Internet, although the actual macro code would not have
|
||||
been hard to create even if it had not publicly appeared. This
|
||||
library uses that code to test for __VA_OPT__ as a necessary
|
||||
prelude for creating a variadic macro which is 100% reliable in
|
||||
testing for emptiness.<br>
|
||||
<br>
|
||||
The Boost Preprocessor macro for testing whether the __VA_OPT__
|
||||
construct is supported during compilation is called
|
||||
BOOST_PP_VARIADIC_HAS_OPT, which is a function-like macro taking
|
||||
no parameters and returning 1 if the __VA_OPT__ construct is
|
||||
supported and 0 if it is not. The macro only returns 1 when
|
||||
the compiler is at the C++20 level, and when the __VA_OPT__ construct
|
||||
can be used according to the C++20 standard. In particular the macro
|
||||
needs the compiler to be working at the C++20 level despite the fact
|
||||
that at least one major compiler supports the __VA_OPT__ construct in
|
||||
some of its latest releases even when the compiler is being used at a
|
||||
C++ standard level below that of C++20. The reason this Boost
|
||||
preprocessor library requires the C++20 level is because that same
|
||||
major compiler can produce a warning, or even an error, when it
|
||||
even sees a macro using the __VA_OPT__ construct at a level below
|
||||
C++20, even though it supports it, if other compiler options
|
||||
requiring strict adherence to the level of the C++ standard being
|
||||
used are passed on the command line. So taking a conservative
|
||||
approach the BOOST_PP_VARIADIC_HAS_OPT macros requires compilation
|
||||
at the C++20 level, along with the testing code expanding to 1,
|
||||
in order to specify that __VA_OPT__ is supported.<br>
|
||||
<br>
|
||||
The actual Boost Preprocessor library for testing for emptiness in
|
||||
C++20 mode is called BOOST_PP_CHECK_EMPTY. The macro is a variadic
|
||||
macro with a single variadic parameter. The macro only exists if
|
||||
our previous macro for testing for __VA_OPT__, called
|
||||
BOOST_PP_VARIADIC_HAS_OPT, expands to 1 when invoked as
|
||||
BOOST_PP_VARIADIC_HAS_OPT(). If BOOST_PP_VARIADIC_HAS_OPT()
|
||||
expands to 0 the BOOST_PP_CHECK_EMPTY macro does not exist at all
|
||||
in this library. The input to the BOOST_PP_CHECK_EMPTY macro can
|
||||
be any variadic data. If the data passed to the macro is empty, or
|
||||
if the data passed to the macro is not empty but when the data
|
||||
itself is expanded it is empty, the macro returns 1, otherwise it
|
||||
returns 0. The macro works 100% of the time and is completely
|
||||
reliable no matter what preprocessor data is passed to it. But of
|
||||
course it only works when compiling at the C++20 level with the
|
||||
__VA_OPT__ construct supported by the compiler. It solves an old
|
||||
problem that it has never been possible, prior to C++20, to
|
||||
provide a 100% reliable implementation of a macro which tests for
|
||||
emptiness in C++.<br>
|
||||
<br>
|
||||
Along with the valuable BOOST_PP_CHECK_EMPTY macro the Boost
|
||||
Preprocessor library has also added a more flexible, if slightly
|
||||
verbose, alternative to the __VA_OPT__ construct, which works by
|
||||
using the ability of BOOST_PP_CHECK_EMPTY to reliably test for
|
||||
emptiness. This macro is called BOOST_PP_VA_OPT and allows the
|
||||
programmer to specify preprocessing tokens for expansion both when
|
||||
the variadic data is <b>not</b> empty and when the variadic data
|
||||
is empty. This improves on the __VA_OPT__ construct's ability to
|
||||
specify preprocessing tokens for expansion only when the variadic
|
||||
data is not empty. Like BOOST_PP_CHECK_EMPTY, which it uses, the
|
||||
BOOST_PP_VA_OPT macro only exists when BOOST_PP_VARIADIC_HAS_OPT()
|
||||
expands to 1. You can read further about how this macro works as
|
||||
an alternative to the C++20 __VA_OPT__ construct in the
|
||||
documentation for the macro itself.<br>
|
||||
<br>
|
||||
Eventually more C++ compilers will support C++20 and the
|
||||
__VA_OPT__ construct and more programmers will use compilers at
|
||||
the C++20 level. At that point the macro BOOST_PP_CHECK_EMPTY can
|
||||
be used reliably for testing emptiness in preprocessor data in
|
||||
macro code by all those programmers. The BOOST_PP_VA_OPT macro
|
||||
serves as a useful example of such use. This does not mean that
|
||||
designing macros with emptiness in mind needs to be done, much
|
||||
less considered, but that the possibility of doing so with
|
||||
complete reliability will be there if needed by the macro
|
||||
programmer. Along with the __VA_OPT__ construct as mandated by the
|
||||
C++20 standard the BOOST_PP_CHECK_EMPTY and BOOST_PP_VA_OPT macros
|
||||
add three more tools in the arsenal of macro programming, which is
|
||||
a good thing, while programmers who wanted to ignore any dealing
|
||||
with emptiness in macro code can continue to do so. </div>
|
||||
<b>See</b> <b>Also</b><br>
|
||||
<ul>
|
||||
<li><a href="../ref/variadic_has_opt.html">BOOST_PP_VARIADIC_HAS_OPT</a></li>
|
||||
<li><a href="../ref/check_empty.html">BOOST_PP_CHECK_EMPTY</a></li>
|
||||
<li><a href="../ref/va_opt.html">BOOST_PP_VA_OPT</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2019</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -364,8 +364,8 @@ typedef TYPELIST((int, double, incomplete<void>)) xyz;
|
||||
<div>
|
||||
There are two minor caveats with this result. First, certain types like <code>void</code>
|
||||
can't be the type of an argument, so they have to be wrapped with <code>incomplete<T></code>.
|
||||
Second, the necessary double parenthesis is annoying. If and when C++
|
||||
gets C99's variadic macros, <code>TYPELIST</code> can be redefined:
|
||||
Second, the necessary double parenthesis is annoying. With variadic macros,
|
||||
<code>TYPELIST</code> can be redefined:
|
||||
</div>
|
||||
<div class="code">
|
||||
<pre>
|
||||
|
319
doc/topics/limitations.html
Normal file
319
doc/topics/limitations.html
Normal file
@ -0,0 +1,319 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>limitations.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<style>
|
||||
u { font-weight: normal; text-decoration: none; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h3>Preprocessor library limitations</h3>
|
||||
<blockquote>
|
||||
<p>The Boost preprocessor library has always had certain specific
|
||||
limitations, which are specifically explained in other areas of
|
||||
this documentation and are implemented as object-like macros in
|
||||
the header file config/limits.hpp. These limitations largely
|
||||
detail the maximum number for certain features in the library.
|
||||
These maximums have been chosen in order to accommodate the
|
||||
large number of compilers and their preprocessors which the
|
||||
library supports, in order to provide a lowest common set of
|
||||
limits with which the vast majority of these compilers can work
|
||||
successfully. This reflects the situation that the C/C++
|
||||
standard rarely specifies preprocessor limitations for compilers
|
||||
but rather allows each compiler to choose whatever limitations
|
||||
it deems necessary in its preprocessor. While this allows
|
||||
individual compilers to largely choose what preprocessor
|
||||
limitations it deems necessary, it makes it more difficult for a
|
||||
preprocessor library like this one to work with a large number
|
||||
of preprocessors across a number of operating system platforms.
|
||||
The difficulty of this situation means that this Boost
|
||||
preprocessor library has chosen fairly conservative limitations.<br>
|
||||
</p>
|
||||
<p>In fact the limitation macros, although indeed existing, have
|
||||
never previously been used internally in the preprocessor
|
||||
library code. Instead while the limitation macros do indeed
|
||||
exist, the library has internally used fixed numbers equivalent
|
||||
to what these macros represent. This historical situation most
|
||||
probably reflects the fact that the library did not want the
|
||||
end-user's possibly changing the limitations, by redefining the
|
||||
macros in config/limits.hpp, to change how the library works and
|
||||
therefore cause problems in using the library.<br>
|
||||
</p>
|
||||
<p>This situation has now changed and a number of the limitation
|
||||
macros specified in config/limits.hpp are now used internally in
|
||||
the library code when the preprocessor is C++ standard
|
||||
conforming. This topic is therefore about how an end-user can
|
||||
change the limitations of the library.<br>
|
||||
</p>
|
||||
</blockquote>
|
||||
<h4>Type of limitations</h4>
|
||||
<blockquote>
|
||||
<p>The type of limitations in the Boost preprocessor library can
|
||||
be divided as:<br>
|
||||
</p>
|
||||
<ul>
|
||||
<li>Numbers</li>
|
||||
<li>Sizes</li>
|
||||
<li>Loops</li>
|
||||
<li>Iterations</li>
|
||||
</ul>
|
||||
The library has support for numbers. This supports basic
|
||||
arithmetic, comparisons, and logical operations. This support is
|
||||
documented by the macro BOOST_PP_LIMIT_MAG, where 'MAG' is short
|
||||
for "MAGNITUDE'. The current fixed maximum value is 256. This
|
||||
means that the library supports numerical operations in the range
|
||||
between 0 and 256.<br>
|
||||
<br>
|
||||
The library has support for the maximum sizes of higher level
|
||||
types. These types are arrays, lists, seqs, tuples, and variadic
|
||||
data. By sizes for these higher level constructs it is meant the
|
||||
maximum number of elements of which a higher level construct can
|
||||
consist. For arrays and tuples this value is documented by the
|
||||
macro BOOST_PP_LIMIT_TUPLE while for variadic data this value is
|
||||
documented by the macro BOOST_PP_LIMIT_VARIADIC. In both these
|
||||
cases the current fixed maximum value is 64. For seqs the value is
|
||||
documented by the macro BOOST_PP_LIMIT_SEQ, whose current fixed
|
||||
value is 256. For lists there has never been a limitation macro
|
||||
but in actual fact the limitation on the maximum number of list
|
||||
elements is defined by the maximum number given above for
|
||||
BOOST_PP_LIMIT_MAG. So a list, like a seq, has a default maximum
|
||||
of 256 elements. The reason that the maximum number of elements
|
||||
for arrays, tuples, and variadic data is 64 while for seqs and
|
||||
lists it is the much larger value of 256 is because the
|
||||
implementation of the former constructs often involves passing the
|
||||
likewise number as parameters to internal macros and a number of
|
||||
compilers have placed limitations on the number of parameters a
|
||||
macro can have; so the much safer 64 was chosen so as to be able
|
||||
to work with these compilers.<br>
|
||||
<br>
|
||||
The looping constructs consist of the control structure
|
||||
BOOST_PP_WHILE and the repetition constructs BOOST_PP_FOR and
|
||||
BOOST_PP_REPEAT. Each of these have a limitation macro, all
|
||||
currently set to 256. This means that the loop can run at maximum
|
||||
256 times. The corresponding limitation macros are
|
||||
BOOST_PP_LIMIT_WHILE, BOOST_PP_LIMIT_FOR, and
|
||||
BOOST_PP_LIMIT_REPEAT.<br>
|
||||
<br>
|
||||
Iteration constructs consist of local iteration and file iteration
|
||||
constructs.The specifics are more fully discussed in their own
|
||||
topics. The corresponding macro is BOOST_PP_LIMIT_ITERATION whose
|
||||
value is 256.<br>
|
||||
</blockquote>
|
||||
<h4> Limitation dependencies</h4>
|
||||
<blockquote>A number of the limitations are actually dependent on
|
||||
other limitations. These are:<br>
|
||||
<ul>
|
||||
<li>BOOST_PP_LIMIT_MAG depends on BOOST_PP_LIMIT_WHILE. All the
|
||||
arithmetic macros except for BOOST_PP_INC and BOOST_PP_DEC
|
||||
depend on looping using BOOST_PP_WHILE. Similarly all the
|
||||
comparison macros except for BOOST_PP_EQUAL and
|
||||
BOOST_PP_NOT_EQUAL depend on BOOST_PP_WHILE. So whatever is
|
||||
the value for BOOST_PP_LIMIT_MAG is also the value for
|
||||
BOOST_PP_LIMIT_WHILE.</li>
|
||||
<li>BOOST_PP_LIMIT_TUPLE depends on BOOST_PP_LIMIT_VARIADIC,
|
||||
since array/tuple functionality often ends up calling variadic data
|
||||
functionality. So while BOOST_PP_LIMIT_TUPLE can be smaller
|
||||
than BOOST_PP_LIMIT_VARIADIC it can never be larger.<br>
|
||||
</li>
|
||||
<li>BOOST_PP_LIMIT_SEQ depends on BOOST_PP_LIMIT_MAG since the
|
||||
total size of a seq must be at most the largest number. So
|
||||
while BOOST_PP_LIMIT_SEQ could be smaller than
|
||||
BOOST_PP_LIMIT_MAG it can never be larger.</li>
|
||||
<li>BOOST_PP_LIMIT_FOR, BOOST_PP_LIMIT_REPEAT, and
|
||||
BOOST_PP_LIMIT_ITERATION all depend on BOOST_PP_LIMIT_MAG.
|
||||
While any of these values could be smaller than
|
||||
BOOST_PP_LIMIT_MAG none of them can be larger.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<h4>Changing the limitations</h4>
|
||||
<blockquote>
|
||||
<p>Limitations can be changed by the end-user defining a
|
||||
limitation macro prior to including preprocessor library header
|
||||
files. This can be done either in a source file or as part of a
|
||||
compiler command line.<br>
|
||||
</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>Before specifying which limitations can be changed a number of
|
||||
items need to be emphasized:<br>
|
||||
</p>
|
||||
<ul>
|
||||
<li>The limitations which can be changed can only be done for
|
||||
C++ standard conforming preprocessors. You can use the macro
|
||||
BOOST_PP_IS_STANDARD, invoking it as BOOST_PP_IS_STANDARD(),
|
||||
to determine if your compiler has a C++ standard conforming
|
||||
preprocessor. Almost all major compilers, including gcc and
|
||||
clang, have C++ standard conforming preprocessors. Most
|
||||
notably the default Visual C++ compiler is not a C++ standard
|
||||
conforming preprocessor, but the new preprocessor for Visual
|
||||
C++, available in Visual Studio 2019 and above, is a C++
|
||||
standard conforming preprocessor. If you change a limitation
|
||||
for a compiler that is not a C++ standard conforming
|
||||
preprocessor the change is simply ignored and no preprocessor
|
||||
error will occur. This is because any non-conforming
|
||||
preprocessor does not actually include or use the macros in
|
||||
the config/limits.hpp file.<br>
|
||||
</li>
|
||||
<li>WARNING ! WARNING ! WARNING ! Increasing limitations may
|
||||
mean that preprocessors may fail because the compiler itself
|
||||
can not handle the increase in the limitations. This may occur
|
||||
because the compiler has an internal limit on the number of
|
||||
parameters that can be passed to a macro, the number of nested
|
||||
macro invocations, or even the amount of memory needed for the
|
||||
preprocessor to expand a macro.</li>
|
||||
<li>Except for possibly first including the preprocessor header
|
||||
boost/preprocessor/config/config.hpp, changing any limitation
|
||||
must be done before including Boost preprocessor headers in a
|
||||
TU ( translation unit ) to work properly. Attempting to change
|
||||
a limitation after including Boost preprocessor headers will
|
||||
at worst lead to preprocessor errors and at best lead to UB (
|
||||
undefined behavior ).</li>
|
||||
<li>Limitations can only be changed to specific values as given
|
||||
below. Attempting to change limitations to other than the
|
||||
specific values will lead to the change being ignored or, if
|
||||
incorrectly done after including Boost preprocessor headers, a
|
||||
preprocessor error.</li>
|
||||
</ul>
|
||||
All the limitations whose default value is 256 can be changed to
|
||||
either 512 or 1024, except for BOOST_PP_LIMIT_WHILE which can not
|
||||
be changed.<br>
|
||||
The two limitations whose default value is 64 can be changed to
|
||||
128 or 256.<br>
|
||||
<br>
|
||||
For the individual limitations:<br>
|
||||
<ul>
|
||||
<li>BOOST_PP_LIMIT_MAG : When you change this limitation the
|
||||
value of BOOST_PP_LIMIT_WHILE also changes so that it is equal
|
||||
to BOOST_PP_LIMIT_MAG. This is because numerical computations
|
||||
depend on the BOOST_PP_WHILE loop, and therefore
|
||||
BOOST_PP_LIMIT_WHILE itself can not be changed. Also when you
|
||||
change the BOOST_PP_LIMIT_MAG limitation the value of
|
||||
BOOST_PP_LIMIT_SEQ, if it has not been also changed to be less
|
||||
than BOOST_PP_LIMIT_MAG, is also changed to the value of
|
||||
BOOST_PP_LIMIT_MAG. This is so that seqs, like lists, will
|
||||
normally have the same maximum number of elements, as defined
|
||||
by BOOST_PP_LIMIT_MAG, unless you decide otherwise and change
|
||||
the BOOST_PP_LIMIT_SEQ yourself.<br>
|
||||
</li>
|
||||
<li>BOOST_PP_LIMIT_TUPLE: When you change this limitation the
|
||||
value of BOOST_PP_LIMIT_VARIADIC also changes so that it is at
|
||||
least equal to BOOST_PP_LIMIT_TUPLE if the value of
|
||||
BOOST_PP_LIMIT_VARIADIC has not also been changed to be
|
||||
greater than BOOST_PP_LIMIT_TUPLE. This is because
|
||||
tuples/arrays depend on variadic functionality.</li>
|
||||
<li>BOOST_PP_LIMIT_SEQ, BOOST_PP_LIMIT_FOR,
|
||||
BOOST_PP_LIMIT_REPEAT, BOOST_PP_LIMIT_ITERATION: If you try to
|
||||
set any of these values greater than the BOOST_PP_LIMIT_MAG
|
||||
value, the particular limitation is set to equal the value of
|
||||
BOOST_PP_LIMIT_MAG. This is because all of these limits depend
|
||||
on the range of numerical values.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<h4>Other considerations</h4>
|
||||
<blockquote>
|
||||
<p>There is no necessity to change any limitation if you are happy
|
||||
with its default value. However if you decide to increase a
|
||||
limitation you should be aware that doing so can affect both the
|
||||
amount of memory used by the preprocessor and the speed in which
|
||||
preprocessing is accomplished. In the first case some
|
||||
preprocessors have been known to run out of memory if a
|
||||
limitation value is increased, even though this should really
|
||||
never happen in modern computer systems. In the latter case
|
||||
preprocessing might become so slow that trying to use the
|
||||
library with some increased limitation, and have your
|
||||
preprocessing finish in some reasonable amount of time, becomes
|
||||
impossible. The latter can occur when you are using lists or
|
||||
seqs and while cycling through a large number of elements you
|
||||
are also doing time consuming operations on each element value
|
||||
which generates further macro looping. Nearly all arithmetic and
|
||||
comparison operations involve further macro looping.<br>
|
||||
</p>
|
||||
<p>For lists and seqs there is functionality which uses the
|
||||
BOOST_PP_FOR macro. If the maximum size for lists and seqs is
|
||||
increased, by using BOOST_PP_LIMIT_MAG macro, you may also need
|
||||
to define BOOST_PP_LIMIT_FOR to increase the maximum number of
|
||||
'for' loops in order to cycle through all lists or seqs using
|
||||
this functionality.<br>
|
||||
</p>
|
||||
<p>The BOOST_PP_WHILE construct is used internally for looping by
|
||||
nearly all arithmetic and comparison macros as well as
|
||||
internally by a number of other macros in the library which loop
|
||||
through elements. While the construct can be called from within
|
||||
an already running BOOST_PP_WHILE loop, it is possible to run
|
||||
out of BOOST_PP_WHILE loops when this happens. In order to solve
|
||||
this problem you can specify a BOOST_PP_LIMIT_MAG which is
|
||||
larger than the maximum number you will ordinarily use. This
|
||||
will give you twice the number of BOOST_PP_WHILE loops and will
|
||||
keep you from running out of loops if you have to do arithmetic
|
||||
computations while cycling through lists and seqs and the number
|
||||
of lists and/or seqs you cycle through is anywhere near your
|
||||
original maximum.<br>
|
||||
</p>
|
||||
</blockquote>
|
||||
<h4>Testing limitations</h4>
|
||||
<blockquote>
|
||||
<p>The default testing of the preprocessor library, using Boost
|
||||
Build's b2 command in the preprocessor test directory, only
|
||||
tests the default limitations. If you want to test, within the
|
||||
test directory, any of the non-default limitations which may be
|
||||
set, you can do so by invoking the b2 command with any of these
|
||||
explicit targets:<br>
|
||||
</p>
|
||||
<ul>
|
||||
<li>preprocessor_128 : arrays, tuples, and variadics with up to
|
||||
128 elements</li>
|
||||
<li>preprocessor_256 : arrays, tuples, and variadics with up to
|
||||
256 elements</li>
|
||||
<li>preprocessor_512 : numbers, lists, seqs, looping, and
|
||||
iteration constructs with 512 maximum</li>
|
||||
<li>preprocessor_1024 : numbers, lists, seqs, looping, and
|
||||
iteration constructs with 1024 maximum</li>
|
||||
<li>preprocessor_tup : both the first and second items in this
|
||||
list</li>
|
||||
<li>preprocessor_num : both the third and fourth items in this
|
||||
list</li>
|
||||
<li>preprocessor_limits : all preprocessor limitations</li>
|
||||
</ul>
|
||||
If you invoke b2 with the last preprocessor_limits target your
|
||||
testing may take awhile for your compiler. When you choose one of
|
||||
the above targets, as in <code>'b2 preprocessor_limits'</code>,
|
||||
the default tests are not run. If you want the default tests run,
|
||||
along with any of the targets such as preprocessor_limits, your
|
||||
command would be <code>'b2 . preprocessor_limits'</code>, where
|
||||
the '.' notation means all the non-explicit ( aka default )
|
||||
targets.<br>
|
||||
</blockquote>
|
||||
<blockquote> </blockquote>
|
||||
<blockquote>
|
||||
<ul>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<blockquote> </blockquote>
|
||||
<b>See</b> <b>Also</b><br>
|
||||
<ul>
|
||||
<li><a href="../ref/is_standard.html">BOOST_PP_IS_STANDARD</a><br>
|
||||
</li>
|
||||
<li><a href="../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
|
||||
<li><a href="../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
|
||||
<li><a href="../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</a></li>
|
||||
<li><a href="../ref/limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
|
||||
<li><a href="../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
|
||||
<li><a href="../ref/limit_for.html">BOOST_PP_LIMIT_FOR</a></li>
|
||||
<li><a href="../ref/limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
|
||||
<li><a href="../ref/limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a><br>
|
||||
</li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener 2020</i>
|
||||
</div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,5 +1,8 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=windows-1252"
|
||||
http-equiv="content-type">
|
||||
<title>variadic_macros.html</title>
|
||||
<link rel="stylesheet" type="text/css" href="../styles.css">
|
||||
<style>
|
||||
@ -8,233 +11,235 @@
|
||||
</head>
|
||||
<body>
|
||||
<h4>Variadic Macros</h4>
|
||||
<div> Variadic macros are supported by a number of compilers.
|
||||
They are
|
||||
macros of the form:
|
||||
</div>
|
||||
<div> Variadic macros are supported by nearly all compilers.
|
||||
Variadic macros are macros of the form: </div>
|
||||
<div class="code">
|
||||
<pre>#define SOME_MACRO(ZeroOrMoreParameters,...) macro expansion possible specifying __VA_ARGS__</pre>
|
||||
</div>
|
||||
<div> The '...' in the parameter list represents the variadic
|
||||
data when the macro is invoked and the __VA_ARGS__ in the expansion
|
||||
represents the variadic data in the expansion of the macro. Variadic
|
||||
data is of the form of 1 or more preprocessor tokens separated by
|
||||
commas.<br>
|
||||
<div> The '...' in the parameter list represents the variadic data
|
||||
when the macro is invoked and the __VA_ARGS__ in the expansion
|
||||
represents the variadic data in the expansion of the macro.
|
||||
Variadic data is of the form of 1 or more preprocessor tokens
|
||||
separated by commas.<br>
|
||||
<br>
|
||||
The '...' must be the last parameter in the macro definition and there
|
||||
may be 0 or more non-variadic parameters preceding it.<br>
|
||||
The '...' must be the last parameter in the macro definition and
|
||||
there may be 0 or more non-variadic parameters preceding it.<br>
|
||||
<br>
|
||||
In the expansion of the macro __VA_ARGS__ may be specified 0 or more
|
||||
times to represent the variadic data. The variadic data in the
|
||||
expansion is a comma separated list of preprocessor tokens representing
|
||||
the variadic data which the invoker of the macro enters as the last
|
||||
arguments to the macro.<br>
|
||||
In the expansion of the macro __VA_ARGS__ may be specified 0 or
|
||||
more times to represent the variadic data. The variadic data in
|
||||
the expansion is a comma separated list of preprocessor tokens
|
||||
representing the variadic data which the invoker of the macro
|
||||
enters as the last arguments to the macro.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Creating and invoking a variadic macro.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define INITIALIZE_INT_ARRAY(array_name,...) \ <br> static int array_name[] = { __VA_ARGS__ }; \ <br> /**/<br><br> INITIALIZE_INT_ARRAY(myname,45,789,33510,9346,2)</pre>
|
||||
</div>
|
||||
<u> <span style="font-weight: bold;">Preprocessor
|
||||
Library Support<br>
|
||||
<u> <span style="font-weight: bold;">Preprocessor Library Support<br>
|
||||
</span></u>
|
||||
<div>The library offers support for variadic macros for those
|
||||
compilers
|
||||
which support the feature. The library can automatically detect whether
|
||||
a compiler supports variadic macros and sets the macro
|
||||
BOOST_PP_VARIADICS accordingly to 1 if the compiler supports variadic
|
||||
macros or 0 if the compiler does not support variadic macros.<br>
|
||||
<div>The library requires support for variadic macros for all
|
||||
compilers using the library. This usually means that compilation
|
||||
at the C level is C99 or higher and that compilation at the C++
|
||||
level is C++11 or higher. Many C++ compilers support variadic
|
||||
macros at the C++98/C++03 level as long as strict compliance is
|
||||
not turned on for those compilers at that level. In particular
|
||||
both the gcc and clang compilers will support variadic macros at
|
||||
the C++98/C++03 levels as long as strict ANSI compliance is not
|
||||
turned on at that level. For those compilers this largely means
|
||||
that the <code>-pedantic</code> or <code>-pedantic-errors</code>
|
||||
option is not used at the C++98/C++03 level of compilation. Boost
|
||||
C++ is deprecating compiling Boost libraries at the C++98/C++03
|
||||
level, so if you must still use this library at that level be
|
||||
aware of these aforementioned caveats.<br>
|
||||
<br>
|
||||
The end-user can #define BOOST_PP_VARIADICS to 1 or 0 himself in a
|
||||
translation unit, before including any preprocessor header files, to
|
||||
prevent the library from attempting to detect whether the compiler
|
||||
supports variadic macros. This has the effect of manually turning on or
|
||||
off variadic macro support in the library. Of course if one manually
|
||||
turns on variadic macro support in the library, and one's compiler does
|
||||
not support variadic macros, functionality in the library which uses
|
||||
variadic macros will fail with error messages from the compiler.<br>
|
||||
<a name="vmvcquirk"></a>Visual C++'s default preprocessor has a
|
||||
few quirks related to variadic macros which require the end-user
|
||||
to code slightly differently. When Visual C++'s default
|
||||
preprocessor is being used BOOST_PP_VARIADICS_MSVC is 1, otherwise
|
||||
it is 0. In this way the end-user can test for the presence of
|
||||
Visual C++'s default preprocessor and code accordingly.<br>
|
||||
<br>
|
||||
When BOOST_PP_VARIADICS is 1, the library offers some extended
|
||||
functionality
|
||||
by using variadic macros, and also offers extended support for working
|
||||
with variadic data.<br>
|
||||
<br>
|
||||
Support for working with variadic
|
||||
data is largely centered on being able to convert variadic data to
|
||||
other library data types, since the
|
||||
functionality for working with those Boost preprocessor library data
|
||||
types is much greater than that for working with variadic data directly.<br>
|
||||
Support for working with variadic data is largely centered on
|
||||
being able to convert variadic data to other library data types,
|
||||
since the functionality for working with those Boost preprocessor
|
||||
library data types is much greater than that for working with
|
||||
variadic data directly.<br>
|
||||
</div>
|
||||
<a name="VNotation"></a>
|
||||
<h4>Notation For Variadic Macros<br>
|
||||
</h4>
|
||||
<div>In the documentation, headers which have variadic macros,
|
||||
and
|
||||
variadic macros themselves, have a notation of '(v)' appended to them.
|
||||
For the variadic macros themselves this signifies that
|
||||
BOOST_PP_VARIADICS must be 1 for those variadic macros to be usable.
|
||||
For variadic macros which have a non-variadic equivalent, the
|
||||
non-variadic equivalent will be used if BOOST_PP_VARIADICS is set to 0.
|
||||
</div>
|
||||
<h4>Extended Functionality Using Variadic Macros<br>
|
||||
</h4>
|
||||
<div>Some macros in the library offer extended
|
||||
functionality through the use of variadic macros.<br>
|
||||
<div>Some macros in the library offer extended functionality through
|
||||
the use of variadic macros.<br>
|
||||
<br>
|
||||
The variadic macro version offers the same functionality
|
||||
as the non-variadic version, but because of the ability of the variadic
|
||||
parameters to encompass a variable number of arguments, it also offers
|
||||
an enhanced syntax using the same macro name.<br>
|
||||
The variadic macro version offers extended functionality because
|
||||
of the ability of the variadic parameters to encompass a variable
|
||||
number of arguments. The library has functionality which can know
|
||||
the number of variadic arguments passed when invoking a variadic
|
||||
macro. This allows the same variadic macro to work with different
|
||||
numbers of parameters, therefore providing more than one
|
||||
syntactical equivalent for the same macro name.<br>
|
||||
<br>
|
||||
The macros in the library which offer this enhanced functionality are
|
||||
all
|
||||
centered on <i>tuple</i> manipulation. With variadic
|
||||
macros it is
|
||||
possible to
|
||||
manipulate tuples without having to know the size of the tuple. So
|
||||
while the invoker can still specify the size when using tuple macro
|
||||
functionality, there are variadic versions of each of the tuple macros,
|
||||
with the exact same name as the non-variadic macro, where the size need
|
||||
not be specified.<br>
|
||||
The macros in the library which offer this enhanced functionality
|
||||
are all centered on <i>tuple</i> manipulation. With variadic
|
||||
macros it is possible to manipulate tuples without having to know
|
||||
the size of the tuple. So while the invoker can still specify the
|
||||
size when using tuple macro functionality, there are syntactical
|
||||
versions of each of the tuple macros where the size need not be
|
||||
specified.<br>
|
||||
</div>
|
||||
<h4>Extended Support For Variadic Data</h4>
|
||||
<div>The library offers extended support for working with
|
||||
variadic data
|
||||
which goes beyond the functionality offered by the C++ specification
|
||||
for variadic macros. It does this through preprocessor programming and
|
||||
by using some of the other functionality in the library itself. Header
|
||||
and macro names
|
||||
in the library which offer extended support for working with variadic
|
||||
data, and need the compiler to support variadic macros, are marked with
|
||||
a (v)<sup> </sup>to indicate a variadic macro.<br>
|
||||
<div>The library offers extended support for working with variadic
|
||||
data which goes beyond the functionality offered by the C++
|
||||
specification for variadic macros. It does this through
|
||||
preprocessor programming and by using some of the other
|
||||
functionality in the library itself.<br>
|
||||
<br>
|
||||
The form of the functionality which the library offers is centered on
|
||||
two macros which work with variadic data itself, and a set of macros
|
||||
which convert between variadic data and other library data
|
||||
The form of the functionality which the library offers is centered
|
||||
on two macros which work with variadic data itself, and a set of
|
||||
macros which convert between variadic data and other library data
|
||||
types.<br>
|
||||
<br>
|
||||
The two macros are BOOST_PP_VARIADIC_ELEM and BOOST_PP_VARIADIC_SIZE,
|
||||
which respectively return a particular token of variadic data and the
|
||||
number of tokens of variadic data.<br>
|
||||
The two macros are BOOST_PP_VARIADIC_ELEM and
|
||||
BOOST_PP_VARIADIC_SIZE, which respectively return a particular
|
||||
token of variadic data and the number of tokens of variadic data.<br>
|
||||
<br>
|
||||
The macros for converting variadic data to the library's data types are
|
||||
BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
|
||||
The macros for converting variadic data to the library's data
|
||||
types are BOOST_PP_VARIADIC_TO_ARRAY, BOOST_PP_VARIADIC_TO_LIST,
|
||||
BOOST_PP_VARIADIC_TO_SEQ, and BOOST_PP_VARIADIC_TO_TUPLE.<br>
|
||||
<br>
|
||||
All of these macros need compiler support for variadic data and only
|
||||
exist if BOOST_PP_VARIADICS is 1. <br>
|
||||
<br>
|
||||
The remaining four macros, which convert from a library data type
|
||||
to comma-separated preprocessor tokens, which is the form of
|
||||
variadic data, do not need compiler support for variadic
|
||||
macros. These functions are BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM,
|
||||
BOOST_PP_SEQ_ENUM, and BOOST_PP_TUPLE_ENUM. However if one wishes to
|
||||
use this variadic data reliably as arguments to other macros, one needs
|
||||
variadic macro support.<br>
|
||||
variadic data, do not use variadic macros. These functions are
|
||||
BOOST_PP_ARRAY_ENUM, BOOST_PP_LIST_ENUM, BOOST_PP_SEQ_ENUM, and
|
||||
BOOST_PP_TUPLE_ENUM. You can use this variadic data reliably as
|
||||
arguments to other macros using variadic macro support.<br>
|
||||
</div>
|
||||
<h4><a name="C20_Support_For_Variadic_Macros"></a>C++20 Support For
|
||||
Variadic Macros</h4>
|
||||
<div> In the C++20 specification there is a new construct which can
|
||||
be used in the expansion of a variadic macro, called __VA_OPT__.
|
||||
This construct when used in the expansion of a variadic macro is
|
||||
followed by an opening paranthesis '(', preprocessor data, and a
|
||||
closing parenthesis ')'. When the variadic data passed by the
|
||||
invocation of a variadic macro is empty, this new construct
|
||||
expands to nothing. When the variadic data passed by the
|
||||
invocation of a variadic macro is not empty, this new construct
|
||||
expands to the preprocessor data between its opening and closing
|
||||
parentheses. <br>
|
||||
<br>
|
||||
This library offers support for this new C++20 construct by
|
||||
automatically detecting whether this new construct is supported by
|
||||
the compiler's preprocessor when using the library. The library
|
||||
macro which detects support for the __VA_OPT__ construct is called
|
||||
BOOST_PP_VARIADIC_HAS_OPT. This is a function-like macro which
|
||||
takes no parameters and returns 1 if the compiler is working in
|
||||
C++20 mode and supports the __VA_OPT__ construct, while otherwise
|
||||
it returns 0. <br>
|
||||
<br>
|
||||
When the __VA_OPT__ construct is supported in C++20 mode the
|
||||
variadic data passed to the variadic macros and to
|
||||
BOOST_PP_OVERLOAD can be empty, otherwise when not in this mode
|
||||
variadic data passed to the variadic macros should never be empty.
|
||||
In this C+++20 mode invoking BOOST_PP_VARIADIC_SIZE with empty
|
||||
data expands to 0, invoking BOOST_PP_VARIADIC_TO_ARRAY with empty
|
||||
data expands to the empty array '(0,())', invoking
|
||||
BOOST_PP_VARIADIC_TO_LIST with empty data expands to the empty
|
||||
list 'BOOST_PP_NIL', and invoking BOOST_PP_OVERLOAD with empty
|
||||
data creates an overload name with 0 appended. Similarly in this
|
||||
C++20 mode passing an empty array '(0,())' to BOOST_PP_ARRAY_ENUM
|
||||
expands to empty variadic data and passing an empty list
|
||||
'BOOST_PP_NIL' to BOOST_PP_LIST_ENUM also expands to empty
|
||||
variadic data. Neither a seq or a tuple can be empty so passing
|
||||
empty variadic data to either BOOST_PP_VARIADIC_TO_SEQ or
|
||||
BOOST_PP_VARIADIC_TO_TUPLE is erroneous. Likewise passing empty
|
||||
data to BOOST_PP_VARIADIC_ELEM is always erroneous since there are
|
||||
no tokens of variadic data to access.<br>
|
||||
</div>
|
||||
<u style="font-weight: bold;"> Using a Tuple Instead of an Array<br>
|
||||
</u>
|
||||
<div>An array as a preprocessor data type is a two-element tuple where the
|
||||
first element is the array size and the second element is a tuple which
|
||||
constitutes the array data. Because a tuple knows its own size when the
|
||||
compiler supports variadic macros, there is no reason to use the array preprocessor
|
||||
data type as opposed to the tuple preprocessor data type; the tuple data
|
||||
type now has all of the functionality which the array data type has and is
|
||||
syntactically easier to use. With variadic macro support, which is now
|
||||
officially part of the latest C++ standard, the preprocessor array data
|
||||
type is essentially obsolete for conforming C++ compilers. Only if your
|
||||
compiler does not support variadic macros is the preprocessor array data
|
||||
type still useful.</div>
|
||||
<div>An array as a preprocessor data type is a two-element tuple
|
||||
where the first element is the array size and the second element
|
||||
is a tuple which constitutes the array data. Because a tuple knows
|
||||
its own size because of compiler support for variadic macros,
|
||||
there is no reason to use the array preprocessor data type as
|
||||
opposed to the tuple preprocessor data type; the tuple data type
|
||||
now has all of the functionality which the array data type has and
|
||||
is syntactically easier to use. The preprocessor array data type
|
||||
is essentially obsolete for modern C++ compilers.</div>
|
||||
<u style="font-weight: bold;">Using Variadic Data</u>
|
||||
<div>Variadic data exists in the
|
||||
form of comma-separated preprocessor tokens. This is the case whether
|
||||
the variadic data comes from the __VA_ARGS__ of a variadic macro, from
|
||||
the conversion of a library's data type to variadic data, or the
|
||||
<div>Variadic data exists in the form of comma-separated
|
||||
preprocessor tokens. This is the case whether the variadic data
|
||||
comes from the __VA_ARGS__ of a variadic macro, from the
|
||||
conversion of a library's data type to variadic data, or the
|
||||
manual construction of comma-separated preprocessing tokens by the
|
||||
programmer writing a macro.<br>
|
||||
<br>
|
||||
The easiest way to work with
|
||||
variadic data internally is to convert it to a library data type.
|
||||
Library data types, whether an <i>array</i>, <i>list</i>,
|
||||
<i>sequence</i>,
|
||||
or <i>tuple</i>, have a rich set of functionality for
|
||||
manipulating
|
||||
data whereas
|
||||
variadic data functionality in the library only allows one to access
|
||||
the variadic data as a whole or to access a single token of the
|
||||
variadic data at a time.<br>
|
||||
The easiest way to work with variadic data internally is to
|
||||
convert it to a library data type. Library data types, whether an
|
||||
<i>array</i>, <i>list</i>, <i>sequence</i>, or <i>tuple</i>,
|
||||
have a rich set of functionality for manipulating data whereas
|
||||
variadic data functionality in the library only allows one to
|
||||
access the variadic data as a whole or to access a single token of
|
||||
the variadic data at a time.<br>
|
||||
<br>
|
||||
The user of the library still may
|
||||
choose to pass variadic data back into internal macros rather than
|
||||
convert it to other library data types. There is no problem passing
|
||||
variadic data as a whole to variadic macros as the last parameter of
|
||||
the macro. However: <br>
|
||||
The user of the library still may choose to pass variadic data
|
||||
back into internal macros rather than convert it to other library
|
||||
data types. There is no problem passing variadic data as a whole
|
||||
to variadic macros as the last parameter of the macro. However: <br>
|
||||
<br>
|
||||
<span style="font-weight: bold;">Attempting to pass
|
||||
variadic data as a
|
||||
whole directly into a non-variadic macro is not guaranteed to work and
|
||||
may fail.<br>
|
||||
<span style="font-weight: bold;">Attempting to pass variadic data
|
||||
as a whole directly into a non-variadic macro is not guaranteed
|
||||
to work and may fail.<br>
|
||||
</span><br>
|
||||
This occurs because of a preprocessor weakness in a number
|
||||
of compilers, currently most notably Visual C++. Even passing variadic
|
||||
data as arguments to a non-variadic macro, when it is not represented
|
||||
in
|
||||
the form of __VA_ARGS__, may fail with certain compilers.<br>
|
||||
This occurs because of a preprocessor weakness in a number of
|
||||
compilers, currently most notably Visual C++'s default
|
||||
preprocessor. Even passing variadic data as arguments to a
|
||||
non-variadic macro, when it is not represented in the form
|
||||
of __VA_ARGS__, may fail with certain compilers.<br>
|
||||
<br>
|
||||
What follows are very simple examples, showing how variadic data can be
|
||||
passed to a non-variadic macro.<br>
|
||||
What follows are very simple examples, showing how variadic data
|
||||
can be passed to a non-variadic macro.<br>
|
||||
<br>
|
||||
First an example of what NOT to do.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to a
|
||||
non-variadic
|
||||
<h4>Example<u> - Passing variadic data as a whole to a non-variadic
|
||||
macro. DO NOT DO.</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span
|
||||
style="font-weight: bold;"><span style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));</pre>
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following should not be done and is not guaranteed to work with compilers. */<br><br><span style="font-weight: bold;"><span style="font-family: monospace;"></span></span>int xx = MACRO_ARG_2(VAR_MACRO(2,3));</pre>
|
||||
</div>
|
||||
<div> There are two ways to pass variadic data to a non-variadic
|
||||
macro.
|
||||
The
|
||||
first of these is to pass the individual tokens of the variadic data
|
||||
separately to the non-variadic macro using the BOOST_PP_VARIADIC_ELEM
|
||||
macro in the library.<br>
|
||||
macro. The first of these is to pass the individual tokens of the
|
||||
variadic data separately to the non-variadic macro using the
|
||||
BOOST_PP_VARIADIC_ELEM macro in the library.<br>
|
||||
</div>
|
||||
<h4>Example<u> - Passing individual variadic data tokens to
|
||||
a
|
||||
<h4>Example<u> - Passing individual variadic data tokens to a
|
||||
non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = MACRO_ARG_2<br> (<br> BOOST_PP_VARIADIC_ELEM(0,VAR_MACRO(2,3)),<br> BOOST_PP_VARIADIC_ELEM(1,VAR_MACRO(2,3))<br> );</pre>
|
||||
</div>
|
||||
<div>The second way is to use a macro in the library called
|
||||
BOOST_PP_OVERLOAD.
|
||||
This macro allows one to "overload" a variadic macro to non-variadic
|
||||
macros of different numbers of parameters, using a common prefix.
|
||||
</div>
|
||||
BOOST_PP_OVERLOAD. This macro allows one to "overload" a variadic
|
||||
macro to non-variadic macros of different numbers of parameters,
|
||||
using a common prefix. </div>
|
||||
<h4>Example<u> - Passing variadic data as a whole to
|
||||
BOOST_PP_OVERLOAD
|
||||
and on to a non-variadic macro.<br>
|
||||
BOOST_PP_OVERLOAD and on to a non-variadic macro.<br>
|
||||
</u></h4>
|
||||
<div class="code">
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++ it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
|
||||
<pre>#define MACRO_ARG_2(x,y) BOOST_PP_ADD(x,y)<br>#define VAR_MACRO(...) __VA_ARGS__<br><br>/* The following will work correctly */<br><br>int xx = BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3));<br><br>/* For Visual C++'s default preprocessor it is necessary to do this */<br><br>int xx = <br>BOOST_PP_CAT(BOOST_PP_OVERLOAD(MACRO_ARG_,VAR_MACRO(2,3))(VAR_MACRO(2,3)),BOOST_PP_EMPTY());</pre>
|
||||
</div>
|
||||
<br>
|
||||
<div>Although these techniques will work when passing variadic
|
||||
data to
|
||||
non-variadic macros, it is much better and less problematical to
|
||||
work internally with the existing library data types and to only use
|
||||
variadic
|
||||
macros as an interface for end-users when there is a need to have a
|
||||
macro which takes a
|
||||
variable number of parameters.<br>
|
||||
<div>Although these techniques will work when passing variadic data
|
||||
to non-variadic macros, it is much better and less problematical
|
||||
to work internally with the existing library data types and to
|
||||
only use variadic macros as an interface for end-users when there
|
||||
is a need to have a macro which takes a variable number of
|
||||
parameters.<br>
|
||||
</div>
|
||||
<b>See</b> <b>Also</b><br>
|
||||
<ul>
|
||||
<li><a href="../ref/variadics.html">BOOST_PP_VARIADICS</a></li>
|
||||
<li><a href="../headers/tuple.html">Tuple Macros</a><br>
|
||||
</li>
|
||||
<li><a href="../headers/variadic.html">Variadic
|
||||
Macros<br>
|
||||
<li><a href="../headers/variadic.html">Variadic Macros<br>
|
||||
</a></li>
|
||||
<li><a href="../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
|
||||
<li><a href="../ref/list_enum_r.html">BOOST_PP_LIST_ENUM</a></li>
|
||||
@ -243,14 +248,13 @@ style="font-weight: bold;"><span style="font-family: monospace;"></span></span>i
|
||||
<li><a href="../ref/overload.html">BOOST_PP_OVERLOAD</a></li>
|
||||
</ul>
|
||||
<hr size="1">
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright
|
||||
Edward Diener
|
||||
2011,2013</i> </div>
|
||||
<div style="margin-left: 0px;"> <i><EFBFBD> Copyright Edward Diener
|
||||
2011,2013,2016</i> </div>
|
||||
<div style="margin-left: 0px;">
|
||||
<p><small>Distributed under the Boost Software License,
|
||||
Version 1.0.
|
||||
(See accompanying file <a href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
|
||||
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
<p><small>Distributed under the Boost Software License, Version
|
||||
1.0. (See accompanying file <a
|
||||
href="../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
|
||||
copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -8,15 +8,19 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/arithmetic/inc.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
# include <boost/preprocessor/control/while.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
#
|
||||
@ -48,4 +52,53 @@
|
||||
# define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
|
||||
# endif
|
||||
#
|
||||
# else
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/dec.hpp>
|
||||
# include <boost/preprocessor/arithmetic/inc.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/control/while.hpp>
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# include <boost/preprocessor/logical/bitand.hpp>
|
||||
# include <boost/preprocessor/logical/bitor.hpp>
|
||||
# include <boost/preprocessor/logical/bool.hpp>
|
||||
# include <boost/preprocessor/logical/compl.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# include <boost/preprocessor/arithmetic/detail/is_maximum_number.hpp>
|
||||
# include <boost/preprocessor/arithmetic/detail/is_minimum_number.hpp>
|
||||
#
|
||||
# /* BOOST_PP_ADD */
|
||||
#
|
||||
# define BOOST_PP_ADD(x, y) BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_PP_DETAIL_IS_MAXIMUM_NUMBER(y),BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x)),BOOST_PP_IDENTITY_N(y,2),BOOST_PP_ADD_DO)(x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_ADD_DO(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
|
||||
# else
|
||||
# define BOOST_PP_ADD_DO(x, y) BOOST_PP_ADD_I(x, y)
|
||||
# define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_ADD_P(d, xy) BOOST_PP_BITAND(BOOST_PP_BOOL(BOOST_PP_TUPLE_ELEM(2, 1, xy)),BOOST_PP_COMPL(BOOST_PP_DETAIL_IS_MAXIMUM_NUMBER(BOOST_PP_TUPLE_ELEM(2, 0, xy))))
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy
|
||||
# else
|
||||
# define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y))
|
||||
#
|
||||
# /* BOOST_PP_ADD_D */
|
||||
#
|
||||
# define BOOST_PP_ADD_D(d, x, y) BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_PP_DETAIL_IS_MAXIMUM_NUMBER(y),BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x)),BOOST_PP_IDENTITY_N(y,3),BOOST_PP_ADD_DO_D)(d,x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_ADD_DO_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
|
||||
# else
|
||||
# define BOOST_PP_ADD_DO_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y)
|
||||
# define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
|
@ -8,6 +8,7 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
@ -16,6 +17,8 @@
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
|
||||
#
|
||||
# /* BOOST_PP_DEC */
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
@ -284,5 +287,36 @@
|
||||
# define BOOST_PP_DEC_254 253
|
||||
# define BOOST_PP_DEC_255 254
|
||||
# define BOOST_PP_DEC_256 255
|
||||
# define BOOST_PP_DEC_257 256
|
||||
#
|
||||
# else
|
||||
#
|
||||
# /* BOOST_PP_DEC */
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
# define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x)
|
||||
# else
|
||||
# define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x))
|
||||
# define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x
|
||||
#
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
#
|
||||
# if BOOST_PP_LIMIT_MAG == 256
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_256.hpp>
|
||||
# elif BOOST_PP_LIMIT_MAG == 512
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_256.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_512.hpp>
|
||||
# elif BOOST_PP_LIMIT_MAG == 1024
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_256.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_512.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/dec_1024.hpp>
|
||||
# else
|
||||
# error Incorrect value for the BOOST_PP_LIMIT_MAG limit
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
|
21
include/boost/preprocessor/arithmetic/detail/is_1_number.hpp
Normal file
21
include/boost/preprocessor/arithmetic/detail/is_1_number.hpp
Normal file
@ -0,0 +1,21 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2020. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP
|
||||
#
|
||||
# /* BOOST_PP_DETAIL_IS_1_NUMBER */
|
||||
#
|
||||
# include <boost/preprocessor/comparison/equal.hpp>
|
||||
#
|
||||
# define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_EQUAL(x,1)
|
||||
#
|
||||
# endif
|
@ -0,0 +1,22 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2020. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_MAXIMUM_NUMBER_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_MAXIMUM_NUMBER_HPP
|
||||
#
|
||||
# /* BOOST_PP_DETAIL_IS_MAXIMUM_NUMBER */
|
||||
#
|
||||
# include <boost/preprocessor/comparison/equal.hpp>
|
||||
# include <boost/preprocessor/arithmetic/detail/maximum_number.hpp>
|
||||
#
|
||||
# define BOOST_PP_DETAIL_IS_MAXIMUM_NUMBER(x) BOOST_PP_EQUAL(x,BOOST_PP_DETAIL_MAXIMUM_NUMBER)
|
||||
#
|
||||
# endif
|
@ -0,0 +1,21 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2020. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_MINIMUM_NUMBER_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_MINIMUM_NUMBER_HPP
|
||||
#
|
||||
# /* BOOST_PP_DETAIL_IS_MINIMUM_NUMBER */
|
||||
#
|
||||
# include <boost/preprocessor/logical/not.hpp>
|
||||
#
|
||||
# define BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x) BOOST_PP_NOT(x)
|
||||
#
|
||||
# endif
|
@ -0,0 +1,19 @@
|
||||
# /* **************************************************************************
|
||||
# * *
|
||||
# * (C) Copyright Edward Diener 2020. *
|
||||
# * Distributed under the Boost Software License, Version 1.0. (See *
|
||||
# * accompanying file LICENSE_1_0.txt or copy at *
|
||||
# * http://www.boost.org/LICENSE_1_0.txt) *
|
||||
# * *
|
||||
# ************************************************************************** */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_MAXIMUM_NUMBER_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_MAXIMUM_NUMBER_HPP
|
||||
#
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
#
|
||||
# define BOOST_PP_DETAIL_MAXIMUM_NUMBER BOOST_PP_LIMIT_MAG
|
||||
#
|
||||
# endif
|
@ -8,14 +8,18 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
#
|
||||
# /* BOOST_PP_DIV */
|
||||
@ -36,4 +40,36 @@
|
||||
# define BOOST_PP_DIV_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# endif
|
||||
#
|
||||
# else
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# include <boost/preprocessor/arithmetic/detail/is_1_number.hpp>
|
||||
#
|
||||
# /* BOOST_PP_DIV */
|
||||
#
|
||||
# define BOOST_PP_DIV(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(x,2),BOOST_PP_DIV_DO)(x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_DIV_DO(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y))
|
||||
# else
|
||||
# define BOOST_PP_DIV_DO(x, y) BOOST_PP_DIV_I(x, y)
|
||||
# define BOOST_PP_DIV_I(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y))
|
||||
# endif
|
||||
#
|
||||
# /* BOOST_PP_DIV_D */
|
||||
#
|
||||
# define BOOST_PP_DIV_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(x,3),BOOST_PP_DIV_DO_D)(d,x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_DIV_DO_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# else
|
||||
# define BOOST_PP_DIV_DO_D(d, x, y) BOOST_PP_DIV_D_I(d, x, y)
|
||||
# define BOOST_PP_DIV_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
|
@ -8,6 +8,7 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
@ -16,6 +17,8 @@
|
||||
#
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
|
||||
#
|
||||
# /* BOOST_PP_INC */
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
@ -285,4 +288,34 @@
|
||||
# define BOOST_PP_INC_255 256
|
||||
# define BOOST_PP_INC_256 256
|
||||
#
|
||||
# else
|
||||
#
|
||||
# /* BOOST_PP_INC */
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
|
||||
# define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
|
||||
# else
|
||||
# define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
|
||||
# define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
|
||||
#
|
||||
# include <boost/preprocessor/config/limits.hpp>
|
||||
#
|
||||
# if BOOST_PP_LIMIT_MAG == 256
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
|
||||
# elif BOOST_PP_LIMIT_MAG == 512
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_512.hpp>
|
||||
# elif BOOST_PP_LIMIT_MAG == 1024
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_256.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_512.hpp>
|
||||
# include <boost/preprocessor/arithmetic/limits/inc_1024.hpp>
|
||||
# else
|
||||
# error Incorrect value for the BOOST_PP_LIMIT_MAG limit
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
|
531
include/boost/preprocessor/arithmetic/limits/dec_1024.hpp
Normal file
531
include/boost/preprocessor/arithmetic/limits/dec_1024.hpp
Normal file
@ -0,0 +1,531 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_1024_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_1024_HPP
|
||||
#
|
||||
# define BOOST_PP_DEC_514 513
|
||||
# define BOOST_PP_DEC_515 514
|
||||
# define BOOST_PP_DEC_516 515
|
||||
# define BOOST_PP_DEC_517 516
|
||||
# define BOOST_PP_DEC_518 517
|
||||
# define BOOST_PP_DEC_519 518
|
||||
# define BOOST_PP_DEC_520 519
|
||||
# define BOOST_PP_DEC_521 520
|
||||
# define BOOST_PP_DEC_522 521
|
||||
# define BOOST_PP_DEC_523 522
|
||||
# define BOOST_PP_DEC_524 523
|
||||
# define BOOST_PP_DEC_525 524
|
||||
# define BOOST_PP_DEC_526 525
|
||||
# define BOOST_PP_DEC_527 526
|
||||
# define BOOST_PP_DEC_528 527
|
||||
# define BOOST_PP_DEC_529 528
|
||||
# define BOOST_PP_DEC_530 529
|
||||
# define BOOST_PP_DEC_531 530
|
||||
# define BOOST_PP_DEC_532 531
|
||||
# define BOOST_PP_DEC_533 532
|
||||
# define BOOST_PP_DEC_534 533
|
||||
# define BOOST_PP_DEC_535 534
|
||||
# define BOOST_PP_DEC_536 535
|
||||
# define BOOST_PP_DEC_537 536
|
||||
# define BOOST_PP_DEC_538 537
|
||||
# define BOOST_PP_DEC_539 538
|
||||
# define BOOST_PP_DEC_540 539
|
||||
# define BOOST_PP_DEC_541 540
|
||||
# define BOOST_PP_DEC_542 541
|
||||
# define BOOST_PP_DEC_543 542
|
||||
# define BOOST_PP_DEC_544 543
|
||||
# define BOOST_PP_DEC_545 544
|
||||
# define BOOST_PP_DEC_546 545
|
||||
# define BOOST_PP_DEC_547 546
|
||||
# define BOOST_PP_DEC_548 547
|
||||
# define BOOST_PP_DEC_549 548
|
||||
# define BOOST_PP_DEC_550 549
|
||||
# define BOOST_PP_DEC_551 550
|
||||
# define BOOST_PP_DEC_552 551
|
||||
# define BOOST_PP_DEC_553 552
|
||||
# define BOOST_PP_DEC_554 553
|
||||
# define BOOST_PP_DEC_555 554
|
||||
# define BOOST_PP_DEC_556 555
|
||||
# define BOOST_PP_DEC_557 556
|
||||
# define BOOST_PP_DEC_558 557
|
||||
# define BOOST_PP_DEC_559 558
|
||||
# define BOOST_PP_DEC_560 559
|
||||
# define BOOST_PP_DEC_561 560
|
||||
# define BOOST_PP_DEC_562 561
|
||||
# define BOOST_PP_DEC_563 562
|
||||
# define BOOST_PP_DEC_564 563
|
||||
# define BOOST_PP_DEC_565 564
|
||||
# define BOOST_PP_DEC_566 565
|
||||
# define BOOST_PP_DEC_567 566
|
||||
# define BOOST_PP_DEC_568 567
|
||||
# define BOOST_PP_DEC_569 568
|
||||
# define BOOST_PP_DEC_570 569
|
||||
# define BOOST_PP_DEC_571 570
|
||||
# define BOOST_PP_DEC_572 571
|
||||
# define BOOST_PP_DEC_573 572
|
||||
# define BOOST_PP_DEC_574 573
|
||||
# define BOOST_PP_DEC_575 574
|
||||
# define BOOST_PP_DEC_576 575
|
||||
# define BOOST_PP_DEC_577 576
|
||||
# define BOOST_PP_DEC_578 577
|
||||
# define BOOST_PP_DEC_579 578
|
||||
# define BOOST_PP_DEC_580 579
|
||||
# define BOOST_PP_DEC_581 580
|
||||
# define BOOST_PP_DEC_582 581
|
||||
# define BOOST_PP_DEC_583 582
|
||||
# define BOOST_PP_DEC_584 583
|
||||
# define BOOST_PP_DEC_585 584
|
||||
# define BOOST_PP_DEC_586 585
|
||||
# define BOOST_PP_DEC_587 586
|
||||
# define BOOST_PP_DEC_588 587
|
||||
# define BOOST_PP_DEC_589 588
|
||||
# define BOOST_PP_DEC_590 589
|
||||
# define BOOST_PP_DEC_591 590
|
||||
# define BOOST_PP_DEC_592 591
|
||||
# define BOOST_PP_DEC_593 592
|
||||
# define BOOST_PP_DEC_594 593
|
||||
# define BOOST_PP_DEC_595 594
|
||||
# define BOOST_PP_DEC_596 595
|
||||
# define BOOST_PP_DEC_597 596
|
||||
# define BOOST_PP_DEC_598 597
|
||||
# define BOOST_PP_DEC_599 598
|
||||
# define BOOST_PP_DEC_600 599
|
||||
# define BOOST_PP_DEC_601 600
|
||||
# define BOOST_PP_DEC_602 601
|
||||
# define BOOST_PP_DEC_603 602
|
||||
# define BOOST_PP_DEC_604 603
|
||||
# define BOOST_PP_DEC_605 604
|
||||
# define BOOST_PP_DEC_606 605
|
||||
# define BOOST_PP_DEC_607 606
|
||||
# define BOOST_PP_DEC_608 607
|
||||
# define BOOST_PP_DEC_609 608
|
||||
# define BOOST_PP_DEC_610 609
|
||||
# define BOOST_PP_DEC_611 610
|
||||
# define BOOST_PP_DEC_612 611
|
||||
# define BOOST_PP_DEC_613 612
|
||||
# define BOOST_PP_DEC_614 613
|
||||
# define BOOST_PP_DEC_615 614
|
||||
# define BOOST_PP_DEC_616 615
|
||||
# define BOOST_PP_DEC_617 616
|
||||
# define BOOST_PP_DEC_618 617
|
||||
# define BOOST_PP_DEC_619 618
|
||||
# define BOOST_PP_DEC_620 619
|
||||
# define BOOST_PP_DEC_621 620
|
||||
# define BOOST_PP_DEC_622 621
|
||||
# define BOOST_PP_DEC_623 622
|
||||
# define BOOST_PP_DEC_624 623
|
||||
# define BOOST_PP_DEC_625 624
|
||||
# define BOOST_PP_DEC_626 625
|
||||
# define BOOST_PP_DEC_627 626
|
||||
# define BOOST_PP_DEC_628 627
|
||||
# define BOOST_PP_DEC_629 628
|
||||
# define BOOST_PP_DEC_630 629
|
||||
# define BOOST_PP_DEC_631 630
|
||||
# define BOOST_PP_DEC_632 631
|
||||
# define BOOST_PP_DEC_633 632
|
||||
# define BOOST_PP_DEC_634 633
|
||||
# define BOOST_PP_DEC_635 634
|
||||
# define BOOST_PP_DEC_636 635
|
||||
# define BOOST_PP_DEC_637 636
|
||||
# define BOOST_PP_DEC_638 637
|
||||
# define BOOST_PP_DEC_639 638
|
||||
# define BOOST_PP_DEC_640 639
|
||||
# define BOOST_PP_DEC_641 640
|
||||
# define BOOST_PP_DEC_642 641
|
||||
# define BOOST_PP_DEC_643 642
|
||||
# define BOOST_PP_DEC_644 643
|
||||
# define BOOST_PP_DEC_645 644
|
||||
# define BOOST_PP_DEC_646 645
|
||||
# define BOOST_PP_DEC_647 646
|
||||
# define BOOST_PP_DEC_648 647
|
||||
# define BOOST_PP_DEC_649 648
|
||||
# define BOOST_PP_DEC_650 649
|
||||
# define BOOST_PP_DEC_651 650
|
||||
# define BOOST_PP_DEC_652 651
|
||||
# define BOOST_PP_DEC_653 652
|
||||
# define BOOST_PP_DEC_654 653
|
||||
# define BOOST_PP_DEC_655 654
|
||||
# define BOOST_PP_DEC_656 655
|
||||
# define BOOST_PP_DEC_657 656
|
||||
# define BOOST_PP_DEC_658 657
|
||||
# define BOOST_PP_DEC_659 658
|
||||
# define BOOST_PP_DEC_660 659
|
||||
# define BOOST_PP_DEC_661 660
|
||||
# define BOOST_PP_DEC_662 661
|
||||
# define BOOST_PP_DEC_663 662
|
||||
# define BOOST_PP_DEC_664 663
|
||||
# define BOOST_PP_DEC_665 664
|
||||
# define BOOST_PP_DEC_666 665
|
||||
# define BOOST_PP_DEC_667 666
|
||||
# define BOOST_PP_DEC_668 667
|
||||
# define BOOST_PP_DEC_669 668
|
||||
# define BOOST_PP_DEC_670 669
|
||||
# define BOOST_PP_DEC_671 670
|
||||
# define BOOST_PP_DEC_672 671
|
||||
# define BOOST_PP_DEC_673 672
|
||||
# define BOOST_PP_DEC_674 673
|
||||
# define BOOST_PP_DEC_675 674
|
||||
# define BOOST_PP_DEC_676 675
|
||||
# define BOOST_PP_DEC_677 676
|
||||
# define BOOST_PP_DEC_678 677
|
||||
# define BOOST_PP_DEC_679 678
|
||||
# define BOOST_PP_DEC_680 679
|
||||
# define BOOST_PP_DEC_681 680
|
||||
# define BOOST_PP_DEC_682 681
|
||||
# define BOOST_PP_DEC_683 682
|
||||
# define BOOST_PP_DEC_684 683
|
||||
# define BOOST_PP_DEC_685 684
|
||||
# define BOOST_PP_DEC_686 685
|
||||
# define BOOST_PP_DEC_687 686
|
||||
# define BOOST_PP_DEC_688 687
|
||||
# define BOOST_PP_DEC_689 688
|
||||
# define BOOST_PP_DEC_690 689
|
||||
# define BOOST_PP_DEC_691 690
|
||||
# define BOOST_PP_DEC_692 691
|
||||
# define BOOST_PP_DEC_693 692
|
||||
# define BOOST_PP_DEC_694 693
|
||||
# define BOOST_PP_DEC_695 694
|
||||
# define BOOST_PP_DEC_696 695
|
||||
# define BOOST_PP_DEC_697 696
|
||||
# define BOOST_PP_DEC_698 697
|
||||
# define BOOST_PP_DEC_699 698
|
||||
# define BOOST_PP_DEC_700 699
|
||||
# define BOOST_PP_DEC_701 700
|
||||
# define BOOST_PP_DEC_702 701
|
||||
# define BOOST_PP_DEC_703 702
|
||||
# define BOOST_PP_DEC_704 703
|
||||
# define BOOST_PP_DEC_705 704
|
||||
# define BOOST_PP_DEC_706 705
|
||||
# define BOOST_PP_DEC_707 706
|
||||
# define BOOST_PP_DEC_708 707
|
||||
# define BOOST_PP_DEC_709 708
|
||||
# define BOOST_PP_DEC_710 709
|
||||
# define BOOST_PP_DEC_711 710
|
||||
# define BOOST_PP_DEC_712 711
|
||||
# define BOOST_PP_DEC_713 712
|
||||
# define BOOST_PP_DEC_714 713
|
||||
# define BOOST_PP_DEC_715 714
|
||||
# define BOOST_PP_DEC_716 715
|
||||
# define BOOST_PP_DEC_717 716
|
||||
# define BOOST_PP_DEC_718 717
|
||||
# define BOOST_PP_DEC_719 718
|
||||
# define BOOST_PP_DEC_720 719
|
||||
# define BOOST_PP_DEC_721 720
|
||||
# define BOOST_PP_DEC_722 721
|
||||
# define BOOST_PP_DEC_723 722
|
||||
# define BOOST_PP_DEC_724 723
|
||||
# define BOOST_PP_DEC_725 724
|
||||
# define BOOST_PP_DEC_726 725
|
||||
# define BOOST_PP_DEC_727 726
|
||||
# define BOOST_PP_DEC_728 727
|
||||
# define BOOST_PP_DEC_729 728
|
||||
# define BOOST_PP_DEC_730 729
|
||||
# define BOOST_PP_DEC_731 730
|
||||
# define BOOST_PP_DEC_732 731
|
||||
# define BOOST_PP_DEC_733 732
|
||||
# define BOOST_PP_DEC_734 733
|
||||
# define BOOST_PP_DEC_735 734
|
||||
# define BOOST_PP_DEC_736 735
|
||||
# define BOOST_PP_DEC_737 736
|
||||
# define BOOST_PP_DEC_738 737
|
||||
# define BOOST_PP_DEC_739 738
|
||||
# define BOOST_PP_DEC_740 739
|
||||
# define BOOST_PP_DEC_741 740
|
||||
# define BOOST_PP_DEC_742 741
|
||||
# define BOOST_PP_DEC_743 742
|
||||
# define BOOST_PP_DEC_744 743
|
||||
# define BOOST_PP_DEC_745 744
|
||||
# define BOOST_PP_DEC_746 745
|
||||
# define BOOST_PP_DEC_747 746
|
||||
# define BOOST_PP_DEC_748 747
|
||||
# define BOOST_PP_DEC_749 748
|
||||
# define BOOST_PP_DEC_750 749
|
||||
# define BOOST_PP_DEC_751 750
|
||||
# define BOOST_PP_DEC_752 751
|
||||
# define BOOST_PP_DEC_753 752
|
||||
# define BOOST_PP_DEC_754 753
|
||||
# define BOOST_PP_DEC_755 754
|
||||
# define BOOST_PP_DEC_756 755
|
||||
# define BOOST_PP_DEC_757 756
|
||||
# define BOOST_PP_DEC_758 757
|
||||
# define BOOST_PP_DEC_759 758
|
||||
# define BOOST_PP_DEC_760 759
|
||||
# define BOOST_PP_DEC_761 760
|
||||
# define BOOST_PP_DEC_762 761
|
||||
# define BOOST_PP_DEC_763 762
|
||||
# define BOOST_PP_DEC_764 763
|
||||
# define BOOST_PP_DEC_765 764
|
||||
# define BOOST_PP_DEC_766 765
|
||||
# define BOOST_PP_DEC_767 766
|
||||
# define BOOST_PP_DEC_768 767
|
||||
# define BOOST_PP_DEC_769 768
|
||||
# define BOOST_PP_DEC_770 769
|
||||
# define BOOST_PP_DEC_771 770
|
||||
# define BOOST_PP_DEC_772 771
|
||||
# define BOOST_PP_DEC_773 772
|
||||
# define BOOST_PP_DEC_774 773
|
||||
# define BOOST_PP_DEC_775 774
|
||||
# define BOOST_PP_DEC_776 775
|
||||
# define BOOST_PP_DEC_777 776
|
||||
# define BOOST_PP_DEC_778 777
|
||||
# define BOOST_PP_DEC_779 778
|
||||
# define BOOST_PP_DEC_780 779
|
||||
# define BOOST_PP_DEC_781 780
|
||||
# define BOOST_PP_DEC_782 781
|
||||
# define BOOST_PP_DEC_783 782
|
||||
# define BOOST_PP_DEC_784 783
|
||||
# define BOOST_PP_DEC_785 784
|
||||
# define BOOST_PP_DEC_786 785
|
||||
# define BOOST_PP_DEC_787 786
|
||||
# define BOOST_PP_DEC_788 787
|
||||
# define BOOST_PP_DEC_789 788
|
||||
# define BOOST_PP_DEC_790 789
|
||||
# define BOOST_PP_DEC_791 790
|
||||
# define BOOST_PP_DEC_792 791
|
||||
# define BOOST_PP_DEC_793 792
|
||||
# define BOOST_PP_DEC_794 793
|
||||
# define BOOST_PP_DEC_795 794
|
||||
# define BOOST_PP_DEC_796 795
|
||||
# define BOOST_PP_DEC_797 796
|
||||
# define BOOST_PP_DEC_798 797
|
||||
# define BOOST_PP_DEC_799 798
|
||||
# define BOOST_PP_DEC_800 799
|
||||
# define BOOST_PP_DEC_801 800
|
||||
# define BOOST_PP_DEC_802 801
|
||||
# define BOOST_PP_DEC_803 802
|
||||
# define BOOST_PP_DEC_804 803
|
||||
# define BOOST_PP_DEC_805 804
|
||||
# define BOOST_PP_DEC_806 805
|
||||
# define BOOST_PP_DEC_807 806
|
||||
# define BOOST_PP_DEC_808 807
|
||||
# define BOOST_PP_DEC_809 808
|
||||
# define BOOST_PP_DEC_810 809
|
||||
# define BOOST_PP_DEC_811 810
|
||||
# define BOOST_PP_DEC_812 811
|
||||
# define BOOST_PP_DEC_813 812
|
||||
# define BOOST_PP_DEC_814 813
|
||||
# define BOOST_PP_DEC_815 814
|
||||
# define BOOST_PP_DEC_816 815
|
||||
# define BOOST_PP_DEC_817 816
|
||||
# define BOOST_PP_DEC_818 817
|
||||
# define BOOST_PP_DEC_819 818
|
||||
# define BOOST_PP_DEC_820 819
|
||||
# define BOOST_PP_DEC_821 820
|
||||
# define BOOST_PP_DEC_822 821
|
||||
# define BOOST_PP_DEC_823 822
|
||||
# define BOOST_PP_DEC_824 823
|
||||
# define BOOST_PP_DEC_825 824
|
||||
# define BOOST_PP_DEC_826 825
|
||||
# define BOOST_PP_DEC_827 826
|
||||
# define BOOST_PP_DEC_828 827
|
||||
# define BOOST_PP_DEC_829 828
|
||||
# define BOOST_PP_DEC_830 829
|
||||
# define BOOST_PP_DEC_831 830
|
||||
# define BOOST_PP_DEC_832 831
|
||||
# define BOOST_PP_DEC_833 832
|
||||
# define BOOST_PP_DEC_834 833
|
||||
# define BOOST_PP_DEC_835 834
|
||||
# define BOOST_PP_DEC_836 835
|
||||
# define BOOST_PP_DEC_837 836
|
||||
# define BOOST_PP_DEC_838 837
|
||||
# define BOOST_PP_DEC_839 838
|
||||
# define BOOST_PP_DEC_840 839
|
||||
# define BOOST_PP_DEC_841 840
|
||||
# define BOOST_PP_DEC_842 841
|
||||
# define BOOST_PP_DEC_843 842
|
||||
# define BOOST_PP_DEC_844 843
|
||||
# define BOOST_PP_DEC_845 844
|
||||
# define BOOST_PP_DEC_846 845
|
||||
# define BOOST_PP_DEC_847 846
|
||||
# define BOOST_PP_DEC_848 847
|
||||
# define BOOST_PP_DEC_849 848
|
||||
# define BOOST_PP_DEC_850 849
|
||||
# define BOOST_PP_DEC_851 850
|
||||
# define BOOST_PP_DEC_852 851
|
||||
# define BOOST_PP_DEC_853 852
|
||||
# define BOOST_PP_DEC_854 853
|
||||
# define BOOST_PP_DEC_855 854
|
||||
# define BOOST_PP_DEC_856 855
|
||||
# define BOOST_PP_DEC_857 856
|
||||
# define BOOST_PP_DEC_858 857
|
||||
# define BOOST_PP_DEC_859 858
|
||||
# define BOOST_PP_DEC_860 859
|
||||
# define BOOST_PP_DEC_861 860
|
||||
# define BOOST_PP_DEC_862 861
|
||||
# define BOOST_PP_DEC_863 862
|
||||
# define BOOST_PP_DEC_864 863
|
||||
# define BOOST_PP_DEC_865 864
|
||||
# define BOOST_PP_DEC_866 865
|
||||
# define BOOST_PP_DEC_867 866
|
||||
# define BOOST_PP_DEC_868 867
|
||||
# define BOOST_PP_DEC_869 868
|
||||
# define BOOST_PP_DEC_870 869
|
||||
# define BOOST_PP_DEC_871 870
|
||||
# define BOOST_PP_DEC_872 871
|
||||
# define BOOST_PP_DEC_873 872
|
||||
# define BOOST_PP_DEC_874 873
|
||||
# define BOOST_PP_DEC_875 874
|
||||
# define BOOST_PP_DEC_876 875
|
||||
# define BOOST_PP_DEC_877 876
|
||||
# define BOOST_PP_DEC_878 877
|
||||
# define BOOST_PP_DEC_879 878
|
||||
# define BOOST_PP_DEC_880 879
|
||||
# define BOOST_PP_DEC_881 880
|
||||
# define BOOST_PP_DEC_882 881
|
||||
# define BOOST_PP_DEC_883 882
|
||||
# define BOOST_PP_DEC_884 883
|
||||
# define BOOST_PP_DEC_885 884
|
||||
# define BOOST_PP_DEC_886 885
|
||||
# define BOOST_PP_DEC_887 886
|
||||
# define BOOST_PP_DEC_888 887
|
||||
# define BOOST_PP_DEC_889 888
|
||||
# define BOOST_PP_DEC_890 889
|
||||
# define BOOST_PP_DEC_891 890
|
||||
# define BOOST_PP_DEC_892 891
|
||||
# define BOOST_PP_DEC_893 892
|
||||
# define BOOST_PP_DEC_894 893
|
||||
# define BOOST_PP_DEC_895 894
|
||||
# define BOOST_PP_DEC_896 895
|
||||
# define BOOST_PP_DEC_897 896
|
||||
# define BOOST_PP_DEC_898 897
|
||||
# define BOOST_PP_DEC_899 898
|
||||
# define BOOST_PP_DEC_900 899
|
||||
# define BOOST_PP_DEC_901 900
|
||||
# define BOOST_PP_DEC_902 901
|
||||
# define BOOST_PP_DEC_903 902
|
||||
# define BOOST_PP_DEC_904 903
|
||||
# define BOOST_PP_DEC_905 904
|
||||
# define BOOST_PP_DEC_906 905
|
||||
# define BOOST_PP_DEC_907 906
|
||||
# define BOOST_PP_DEC_908 907
|
||||
# define BOOST_PP_DEC_909 908
|
||||
# define BOOST_PP_DEC_910 909
|
||||
# define BOOST_PP_DEC_911 910
|
||||
# define BOOST_PP_DEC_912 911
|
||||
# define BOOST_PP_DEC_913 912
|
||||
# define BOOST_PP_DEC_914 913
|
||||
# define BOOST_PP_DEC_915 914
|
||||
# define BOOST_PP_DEC_916 915
|
||||
# define BOOST_PP_DEC_917 916
|
||||
# define BOOST_PP_DEC_918 917
|
||||
# define BOOST_PP_DEC_919 918
|
||||
# define BOOST_PP_DEC_920 919
|
||||
# define BOOST_PP_DEC_921 920
|
||||
# define BOOST_PP_DEC_922 921
|
||||
# define BOOST_PP_DEC_923 922
|
||||
# define BOOST_PP_DEC_924 923
|
||||
# define BOOST_PP_DEC_925 924
|
||||
# define BOOST_PP_DEC_926 925
|
||||
# define BOOST_PP_DEC_927 926
|
||||
# define BOOST_PP_DEC_928 927
|
||||
# define BOOST_PP_DEC_929 928
|
||||
# define BOOST_PP_DEC_930 929
|
||||
# define BOOST_PP_DEC_931 930
|
||||
# define BOOST_PP_DEC_932 931
|
||||
# define BOOST_PP_DEC_933 932
|
||||
# define BOOST_PP_DEC_934 933
|
||||
# define BOOST_PP_DEC_935 934
|
||||
# define BOOST_PP_DEC_936 935
|
||||
# define BOOST_PP_DEC_937 936
|
||||
# define BOOST_PP_DEC_938 937
|
||||
# define BOOST_PP_DEC_939 938
|
||||
# define BOOST_PP_DEC_940 939
|
||||
# define BOOST_PP_DEC_941 940
|
||||
# define BOOST_PP_DEC_942 941
|
||||
# define BOOST_PP_DEC_943 942
|
||||
# define BOOST_PP_DEC_944 943
|
||||
# define BOOST_PP_DEC_945 944
|
||||
# define BOOST_PP_DEC_946 945
|
||||
# define BOOST_PP_DEC_947 946
|
||||
# define BOOST_PP_DEC_948 947
|
||||
# define BOOST_PP_DEC_949 948
|
||||
# define BOOST_PP_DEC_950 949
|
||||
# define BOOST_PP_DEC_951 950
|
||||
# define BOOST_PP_DEC_952 951
|
||||
# define BOOST_PP_DEC_953 952
|
||||
# define BOOST_PP_DEC_954 953
|
||||
# define BOOST_PP_DEC_955 954
|
||||
# define BOOST_PP_DEC_956 955
|
||||
# define BOOST_PP_DEC_957 956
|
||||
# define BOOST_PP_DEC_958 957
|
||||
# define BOOST_PP_DEC_959 958
|
||||
# define BOOST_PP_DEC_960 959
|
||||
# define BOOST_PP_DEC_961 960
|
||||
# define BOOST_PP_DEC_962 961
|
||||
# define BOOST_PP_DEC_963 962
|
||||
# define BOOST_PP_DEC_964 963
|
||||
# define BOOST_PP_DEC_965 964
|
||||
# define BOOST_PP_DEC_966 965
|
||||
# define BOOST_PP_DEC_967 966
|
||||
# define BOOST_PP_DEC_968 967
|
||||
# define BOOST_PP_DEC_969 968
|
||||
# define BOOST_PP_DEC_970 969
|
||||
# define BOOST_PP_DEC_971 970
|
||||
# define BOOST_PP_DEC_972 971
|
||||
# define BOOST_PP_DEC_973 972
|
||||
# define BOOST_PP_DEC_974 973
|
||||
# define BOOST_PP_DEC_975 974
|
||||
# define BOOST_PP_DEC_976 975
|
||||
# define BOOST_PP_DEC_977 976
|
||||
# define BOOST_PP_DEC_978 977
|
||||
# define BOOST_PP_DEC_979 978
|
||||
# define BOOST_PP_DEC_980 979
|
||||
# define BOOST_PP_DEC_981 980
|
||||
# define BOOST_PP_DEC_982 981
|
||||
# define BOOST_PP_DEC_983 982
|
||||
# define BOOST_PP_DEC_984 983
|
||||
# define BOOST_PP_DEC_985 984
|
||||
# define BOOST_PP_DEC_986 985
|
||||
# define BOOST_PP_DEC_987 986
|
||||
# define BOOST_PP_DEC_988 987
|
||||
# define BOOST_PP_DEC_989 988
|
||||
# define BOOST_PP_DEC_990 989
|
||||
# define BOOST_PP_DEC_991 990
|
||||
# define BOOST_PP_DEC_992 991
|
||||
# define BOOST_PP_DEC_993 992
|
||||
# define BOOST_PP_DEC_994 993
|
||||
# define BOOST_PP_DEC_995 994
|
||||
# define BOOST_PP_DEC_996 995
|
||||
# define BOOST_PP_DEC_997 996
|
||||
# define BOOST_PP_DEC_998 997
|
||||
# define BOOST_PP_DEC_999 998
|
||||
# define BOOST_PP_DEC_1000 999
|
||||
# define BOOST_PP_DEC_1001 1000
|
||||
# define BOOST_PP_DEC_1002 1001
|
||||
# define BOOST_PP_DEC_1003 1002
|
||||
# define BOOST_PP_DEC_1004 1003
|
||||
# define BOOST_PP_DEC_1005 1004
|
||||
# define BOOST_PP_DEC_1006 1005
|
||||
# define BOOST_PP_DEC_1007 1006
|
||||
# define BOOST_PP_DEC_1008 1007
|
||||
# define BOOST_PP_DEC_1009 1008
|
||||
# define BOOST_PP_DEC_1010 1009
|
||||
# define BOOST_PP_DEC_1011 1010
|
||||
# define BOOST_PP_DEC_1012 1011
|
||||
# define BOOST_PP_DEC_1013 1012
|
||||
# define BOOST_PP_DEC_1014 1013
|
||||
# define BOOST_PP_DEC_1015 1014
|
||||
# define BOOST_PP_DEC_1016 1015
|
||||
# define BOOST_PP_DEC_1017 1016
|
||||
# define BOOST_PP_DEC_1018 1017
|
||||
# define BOOST_PP_DEC_1019 1018
|
||||
# define BOOST_PP_DEC_1020 1019
|
||||
# define BOOST_PP_DEC_1021 1020
|
||||
# define BOOST_PP_DEC_1022 1021
|
||||
# define BOOST_PP_DEC_1023 1022
|
||||
# define BOOST_PP_DEC_1024 1023
|
||||
# define BOOST_PP_DEC_1025 1024
|
||||
#
|
||||
# endif
|
276
include/boost/preprocessor/arithmetic/limits/dec_256.hpp
Normal file
276
include/boost/preprocessor/arithmetic/limits/dec_256.hpp
Normal file
@ -0,0 +1,276 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_256_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_256_HPP
|
||||
#
|
||||
# define BOOST_PP_DEC_0 0
|
||||
# define BOOST_PP_DEC_1 0
|
||||
# define BOOST_PP_DEC_2 1
|
||||
# define BOOST_PP_DEC_3 2
|
||||
# define BOOST_PP_DEC_4 3
|
||||
# define BOOST_PP_DEC_5 4
|
||||
# define BOOST_PP_DEC_6 5
|
||||
# define BOOST_PP_DEC_7 6
|
||||
# define BOOST_PP_DEC_8 7
|
||||
# define BOOST_PP_DEC_9 8
|
||||
# define BOOST_PP_DEC_10 9
|
||||
# define BOOST_PP_DEC_11 10
|
||||
# define BOOST_PP_DEC_12 11
|
||||
# define BOOST_PP_DEC_13 12
|
||||
# define BOOST_PP_DEC_14 13
|
||||
# define BOOST_PP_DEC_15 14
|
||||
# define BOOST_PP_DEC_16 15
|
||||
# define BOOST_PP_DEC_17 16
|
||||
# define BOOST_PP_DEC_18 17
|
||||
# define BOOST_PP_DEC_19 18
|
||||
# define BOOST_PP_DEC_20 19
|
||||
# define BOOST_PP_DEC_21 20
|
||||
# define BOOST_PP_DEC_22 21
|
||||
# define BOOST_PP_DEC_23 22
|
||||
# define BOOST_PP_DEC_24 23
|
||||
# define BOOST_PP_DEC_25 24
|
||||
# define BOOST_PP_DEC_26 25
|
||||
# define BOOST_PP_DEC_27 26
|
||||
# define BOOST_PP_DEC_28 27
|
||||
# define BOOST_PP_DEC_29 28
|
||||
# define BOOST_PP_DEC_30 29
|
||||
# define BOOST_PP_DEC_31 30
|
||||
# define BOOST_PP_DEC_32 31
|
||||
# define BOOST_PP_DEC_33 32
|
||||
# define BOOST_PP_DEC_34 33
|
||||
# define BOOST_PP_DEC_35 34
|
||||
# define BOOST_PP_DEC_36 35
|
||||
# define BOOST_PP_DEC_37 36
|
||||
# define BOOST_PP_DEC_38 37
|
||||
# define BOOST_PP_DEC_39 38
|
||||
# define BOOST_PP_DEC_40 39
|
||||
# define BOOST_PP_DEC_41 40
|
||||
# define BOOST_PP_DEC_42 41
|
||||
# define BOOST_PP_DEC_43 42
|
||||
# define BOOST_PP_DEC_44 43
|
||||
# define BOOST_PP_DEC_45 44
|
||||
# define BOOST_PP_DEC_46 45
|
||||
# define BOOST_PP_DEC_47 46
|
||||
# define BOOST_PP_DEC_48 47
|
||||
# define BOOST_PP_DEC_49 48
|
||||
# define BOOST_PP_DEC_50 49
|
||||
# define BOOST_PP_DEC_51 50
|
||||
# define BOOST_PP_DEC_52 51
|
||||
# define BOOST_PP_DEC_53 52
|
||||
# define BOOST_PP_DEC_54 53
|
||||
# define BOOST_PP_DEC_55 54
|
||||
# define BOOST_PP_DEC_56 55
|
||||
# define BOOST_PP_DEC_57 56
|
||||
# define BOOST_PP_DEC_58 57
|
||||
# define BOOST_PP_DEC_59 58
|
||||
# define BOOST_PP_DEC_60 59
|
||||
# define BOOST_PP_DEC_61 60
|
||||
# define BOOST_PP_DEC_62 61
|
||||
# define BOOST_PP_DEC_63 62
|
||||
# define BOOST_PP_DEC_64 63
|
||||
# define BOOST_PP_DEC_65 64
|
||||
# define BOOST_PP_DEC_66 65
|
||||
# define BOOST_PP_DEC_67 66
|
||||
# define BOOST_PP_DEC_68 67
|
||||
# define BOOST_PP_DEC_69 68
|
||||
# define BOOST_PP_DEC_70 69
|
||||
# define BOOST_PP_DEC_71 70
|
||||
# define BOOST_PP_DEC_72 71
|
||||
# define BOOST_PP_DEC_73 72
|
||||
# define BOOST_PP_DEC_74 73
|
||||
# define BOOST_PP_DEC_75 74
|
||||
# define BOOST_PP_DEC_76 75
|
||||
# define BOOST_PP_DEC_77 76
|
||||
# define BOOST_PP_DEC_78 77
|
||||
# define BOOST_PP_DEC_79 78
|
||||
# define BOOST_PP_DEC_80 79
|
||||
# define BOOST_PP_DEC_81 80
|
||||
# define BOOST_PP_DEC_82 81
|
||||
# define BOOST_PP_DEC_83 82
|
||||
# define BOOST_PP_DEC_84 83
|
||||
# define BOOST_PP_DEC_85 84
|
||||
# define BOOST_PP_DEC_86 85
|
||||
# define BOOST_PP_DEC_87 86
|
||||
# define BOOST_PP_DEC_88 87
|
||||
# define BOOST_PP_DEC_89 88
|
||||
# define BOOST_PP_DEC_90 89
|
||||
# define BOOST_PP_DEC_91 90
|
||||
# define BOOST_PP_DEC_92 91
|
||||
# define BOOST_PP_DEC_93 92
|
||||
# define BOOST_PP_DEC_94 93
|
||||
# define BOOST_PP_DEC_95 94
|
||||
# define BOOST_PP_DEC_96 95
|
||||
# define BOOST_PP_DEC_97 96
|
||||
# define BOOST_PP_DEC_98 97
|
||||
# define BOOST_PP_DEC_99 98
|
||||
# define BOOST_PP_DEC_100 99
|
||||
# define BOOST_PP_DEC_101 100
|
||||
# define BOOST_PP_DEC_102 101
|
||||
# define BOOST_PP_DEC_103 102
|
||||
# define BOOST_PP_DEC_104 103
|
||||
# define BOOST_PP_DEC_105 104
|
||||
# define BOOST_PP_DEC_106 105
|
||||
# define BOOST_PP_DEC_107 106
|
||||
# define BOOST_PP_DEC_108 107
|
||||
# define BOOST_PP_DEC_109 108
|
||||
# define BOOST_PP_DEC_110 109
|
||||
# define BOOST_PP_DEC_111 110
|
||||
# define BOOST_PP_DEC_112 111
|
||||
# define BOOST_PP_DEC_113 112
|
||||
# define BOOST_PP_DEC_114 113
|
||||
# define BOOST_PP_DEC_115 114
|
||||
# define BOOST_PP_DEC_116 115
|
||||
# define BOOST_PP_DEC_117 116
|
||||
# define BOOST_PP_DEC_118 117
|
||||
# define BOOST_PP_DEC_119 118
|
||||
# define BOOST_PP_DEC_120 119
|
||||
# define BOOST_PP_DEC_121 120
|
||||
# define BOOST_PP_DEC_122 121
|
||||
# define BOOST_PP_DEC_123 122
|
||||
# define BOOST_PP_DEC_124 123
|
||||
# define BOOST_PP_DEC_125 124
|
||||
# define BOOST_PP_DEC_126 125
|
||||
# define BOOST_PP_DEC_127 126
|
||||
# define BOOST_PP_DEC_128 127
|
||||
# define BOOST_PP_DEC_129 128
|
||||
# define BOOST_PP_DEC_130 129
|
||||
# define BOOST_PP_DEC_131 130
|
||||
# define BOOST_PP_DEC_132 131
|
||||
# define BOOST_PP_DEC_133 132
|
||||
# define BOOST_PP_DEC_134 133
|
||||
# define BOOST_PP_DEC_135 134
|
||||
# define BOOST_PP_DEC_136 135
|
||||
# define BOOST_PP_DEC_137 136
|
||||
# define BOOST_PP_DEC_138 137
|
||||
# define BOOST_PP_DEC_139 138
|
||||
# define BOOST_PP_DEC_140 139
|
||||
# define BOOST_PP_DEC_141 140
|
||||
# define BOOST_PP_DEC_142 141
|
||||
# define BOOST_PP_DEC_143 142
|
||||
# define BOOST_PP_DEC_144 143
|
||||
# define BOOST_PP_DEC_145 144
|
||||
# define BOOST_PP_DEC_146 145
|
||||
# define BOOST_PP_DEC_147 146
|
||||
# define BOOST_PP_DEC_148 147
|
||||
# define BOOST_PP_DEC_149 148
|
||||
# define BOOST_PP_DEC_150 149
|
||||
# define BOOST_PP_DEC_151 150
|
||||
# define BOOST_PP_DEC_152 151
|
||||
# define BOOST_PP_DEC_153 152
|
||||
# define BOOST_PP_DEC_154 153
|
||||
# define BOOST_PP_DEC_155 154
|
||||
# define BOOST_PP_DEC_156 155
|
||||
# define BOOST_PP_DEC_157 156
|
||||
# define BOOST_PP_DEC_158 157
|
||||
# define BOOST_PP_DEC_159 158
|
||||
# define BOOST_PP_DEC_160 159
|
||||
# define BOOST_PP_DEC_161 160
|
||||
# define BOOST_PP_DEC_162 161
|
||||
# define BOOST_PP_DEC_163 162
|
||||
# define BOOST_PP_DEC_164 163
|
||||
# define BOOST_PP_DEC_165 164
|
||||
# define BOOST_PP_DEC_166 165
|
||||
# define BOOST_PP_DEC_167 166
|
||||
# define BOOST_PP_DEC_168 167
|
||||
# define BOOST_PP_DEC_169 168
|
||||
# define BOOST_PP_DEC_170 169
|
||||
# define BOOST_PP_DEC_171 170
|
||||
# define BOOST_PP_DEC_172 171
|
||||
# define BOOST_PP_DEC_173 172
|
||||
# define BOOST_PP_DEC_174 173
|
||||
# define BOOST_PP_DEC_175 174
|
||||
# define BOOST_PP_DEC_176 175
|
||||
# define BOOST_PP_DEC_177 176
|
||||
# define BOOST_PP_DEC_178 177
|
||||
# define BOOST_PP_DEC_179 178
|
||||
# define BOOST_PP_DEC_180 179
|
||||
# define BOOST_PP_DEC_181 180
|
||||
# define BOOST_PP_DEC_182 181
|
||||
# define BOOST_PP_DEC_183 182
|
||||
# define BOOST_PP_DEC_184 183
|
||||
# define BOOST_PP_DEC_185 184
|
||||
# define BOOST_PP_DEC_186 185
|
||||
# define BOOST_PP_DEC_187 186
|
||||
# define BOOST_PP_DEC_188 187
|
||||
# define BOOST_PP_DEC_189 188
|
||||
# define BOOST_PP_DEC_190 189
|
||||
# define BOOST_PP_DEC_191 190
|
||||
# define BOOST_PP_DEC_192 191
|
||||
# define BOOST_PP_DEC_193 192
|
||||
# define BOOST_PP_DEC_194 193
|
||||
# define BOOST_PP_DEC_195 194
|
||||
# define BOOST_PP_DEC_196 195
|
||||
# define BOOST_PP_DEC_197 196
|
||||
# define BOOST_PP_DEC_198 197
|
||||
# define BOOST_PP_DEC_199 198
|
||||
# define BOOST_PP_DEC_200 199
|
||||
# define BOOST_PP_DEC_201 200
|
||||
# define BOOST_PP_DEC_202 201
|
||||
# define BOOST_PP_DEC_203 202
|
||||
# define BOOST_PP_DEC_204 203
|
||||
# define BOOST_PP_DEC_205 204
|
||||
# define BOOST_PP_DEC_206 205
|
||||
# define BOOST_PP_DEC_207 206
|
||||
# define BOOST_PP_DEC_208 207
|
||||
# define BOOST_PP_DEC_209 208
|
||||
# define BOOST_PP_DEC_210 209
|
||||
# define BOOST_PP_DEC_211 210
|
||||
# define BOOST_PP_DEC_212 211
|
||||
# define BOOST_PP_DEC_213 212
|
||||
# define BOOST_PP_DEC_214 213
|
||||
# define BOOST_PP_DEC_215 214
|
||||
# define BOOST_PP_DEC_216 215
|
||||
# define BOOST_PP_DEC_217 216
|
||||
# define BOOST_PP_DEC_218 217
|
||||
# define BOOST_PP_DEC_219 218
|
||||
# define BOOST_PP_DEC_220 219
|
||||
# define BOOST_PP_DEC_221 220
|
||||
# define BOOST_PP_DEC_222 221
|
||||
# define BOOST_PP_DEC_223 222
|
||||
# define BOOST_PP_DEC_224 223
|
||||
# define BOOST_PP_DEC_225 224
|
||||
# define BOOST_PP_DEC_226 225
|
||||
# define BOOST_PP_DEC_227 226
|
||||
# define BOOST_PP_DEC_228 227
|
||||
# define BOOST_PP_DEC_229 228
|
||||
# define BOOST_PP_DEC_230 229
|
||||
# define BOOST_PP_DEC_231 230
|
||||
# define BOOST_PP_DEC_232 231
|
||||
# define BOOST_PP_DEC_233 232
|
||||
# define BOOST_PP_DEC_234 233
|
||||
# define BOOST_PP_DEC_235 234
|
||||
# define BOOST_PP_DEC_236 235
|
||||
# define BOOST_PP_DEC_237 236
|
||||
# define BOOST_PP_DEC_238 237
|
||||
# define BOOST_PP_DEC_239 238
|
||||
# define BOOST_PP_DEC_240 239
|
||||
# define BOOST_PP_DEC_241 240
|
||||
# define BOOST_PP_DEC_242 241
|
||||
# define BOOST_PP_DEC_243 242
|
||||
# define BOOST_PP_DEC_244 243
|
||||
# define BOOST_PP_DEC_245 244
|
||||
# define BOOST_PP_DEC_246 245
|
||||
# define BOOST_PP_DEC_247 246
|
||||
# define BOOST_PP_DEC_248 247
|
||||
# define BOOST_PP_DEC_249 248
|
||||
# define BOOST_PP_DEC_250 249
|
||||
# define BOOST_PP_DEC_251 250
|
||||
# define BOOST_PP_DEC_252 251
|
||||
# define BOOST_PP_DEC_253 252
|
||||
# define BOOST_PP_DEC_254 253
|
||||
# define BOOST_PP_DEC_255 254
|
||||
# define BOOST_PP_DEC_256 255
|
||||
# define BOOST_PP_DEC_257 256
|
||||
#
|
||||
# endif
|
275
include/boost/preprocessor/arithmetic/limits/dec_512.hpp
Normal file
275
include/boost/preprocessor/arithmetic/limits/dec_512.hpp
Normal file
@ -0,0 +1,275 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_512_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_512_HPP
|
||||
#
|
||||
# define BOOST_PP_DEC_258 257
|
||||
# define BOOST_PP_DEC_259 258
|
||||
# define BOOST_PP_DEC_260 259
|
||||
# define BOOST_PP_DEC_261 260
|
||||
# define BOOST_PP_DEC_262 261
|
||||
# define BOOST_PP_DEC_263 262
|
||||
# define BOOST_PP_DEC_264 263
|
||||
# define BOOST_PP_DEC_265 264
|
||||
# define BOOST_PP_DEC_266 265
|
||||
# define BOOST_PP_DEC_267 266
|
||||
# define BOOST_PP_DEC_268 267
|
||||
# define BOOST_PP_DEC_269 268
|
||||
# define BOOST_PP_DEC_270 269
|
||||
# define BOOST_PP_DEC_271 270
|
||||
# define BOOST_PP_DEC_272 271
|
||||
# define BOOST_PP_DEC_273 272
|
||||
# define BOOST_PP_DEC_274 273
|
||||
# define BOOST_PP_DEC_275 274
|
||||
# define BOOST_PP_DEC_276 275
|
||||
# define BOOST_PP_DEC_277 276
|
||||
# define BOOST_PP_DEC_278 277
|
||||
# define BOOST_PP_DEC_279 278
|
||||
# define BOOST_PP_DEC_280 279
|
||||
# define BOOST_PP_DEC_281 280
|
||||
# define BOOST_PP_DEC_282 281
|
||||
# define BOOST_PP_DEC_283 282
|
||||
# define BOOST_PP_DEC_284 283
|
||||
# define BOOST_PP_DEC_285 284
|
||||
# define BOOST_PP_DEC_286 285
|
||||
# define BOOST_PP_DEC_287 286
|
||||
# define BOOST_PP_DEC_288 287
|
||||
# define BOOST_PP_DEC_289 288
|
||||
# define BOOST_PP_DEC_290 289
|
||||
# define BOOST_PP_DEC_291 290
|
||||
# define BOOST_PP_DEC_292 291
|
||||
# define BOOST_PP_DEC_293 292
|
||||
# define BOOST_PP_DEC_294 293
|
||||
# define BOOST_PP_DEC_295 294
|
||||
# define BOOST_PP_DEC_296 295
|
||||
# define BOOST_PP_DEC_297 296
|
||||
# define BOOST_PP_DEC_298 297
|
||||
# define BOOST_PP_DEC_299 298
|
||||
# define BOOST_PP_DEC_300 299
|
||||
# define BOOST_PP_DEC_301 300
|
||||
# define BOOST_PP_DEC_302 301
|
||||
# define BOOST_PP_DEC_303 302
|
||||
# define BOOST_PP_DEC_304 303
|
||||
# define BOOST_PP_DEC_305 304
|
||||
# define BOOST_PP_DEC_306 305
|
||||
# define BOOST_PP_DEC_307 306
|
||||
# define BOOST_PP_DEC_308 307
|
||||
# define BOOST_PP_DEC_309 308
|
||||
# define BOOST_PP_DEC_310 309
|
||||
# define BOOST_PP_DEC_311 310
|
||||
# define BOOST_PP_DEC_312 311
|
||||
# define BOOST_PP_DEC_313 312
|
||||
# define BOOST_PP_DEC_314 313
|
||||
# define BOOST_PP_DEC_315 314
|
||||
# define BOOST_PP_DEC_316 315
|
||||
# define BOOST_PP_DEC_317 316
|
||||
# define BOOST_PP_DEC_318 317
|
||||
# define BOOST_PP_DEC_319 318
|
||||
# define BOOST_PP_DEC_320 319
|
||||
# define BOOST_PP_DEC_321 320
|
||||
# define BOOST_PP_DEC_322 321
|
||||
# define BOOST_PP_DEC_323 322
|
||||
# define BOOST_PP_DEC_324 323
|
||||
# define BOOST_PP_DEC_325 324
|
||||
# define BOOST_PP_DEC_326 325
|
||||
# define BOOST_PP_DEC_327 326
|
||||
# define BOOST_PP_DEC_328 327
|
||||
# define BOOST_PP_DEC_329 328
|
||||
# define BOOST_PP_DEC_330 329
|
||||
# define BOOST_PP_DEC_331 330
|
||||
# define BOOST_PP_DEC_332 331
|
||||
# define BOOST_PP_DEC_333 332
|
||||
# define BOOST_PP_DEC_334 333
|
||||
# define BOOST_PP_DEC_335 334
|
||||
# define BOOST_PP_DEC_336 335
|
||||
# define BOOST_PP_DEC_337 336
|
||||
# define BOOST_PP_DEC_338 337
|
||||
# define BOOST_PP_DEC_339 338
|
||||
# define BOOST_PP_DEC_340 339
|
||||
# define BOOST_PP_DEC_341 340
|
||||
# define BOOST_PP_DEC_342 341
|
||||
# define BOOST_PP_DEC_343 342
|
||||
# define BOOST_PP_DEC_344 343
|
||||
# define BOOST_PP_DEC_345 344
|
||||
# define BOOST_PP_DEC_346 345
|
||||
# define BOOST_PP_DEC_347 346
|
||||
# define BOOST_PP_DEC_348 347
|
||||
# define BOOST_PP_DEC_349 348
|
||||
# define BOOST_PP_DEC_350 349
|
||||
# define BOOST_PP_DEC_351 350
|
||||
# define BOOST_PP_DEC_352 351
|
||||
# define BOOST_PP_DEC_353 352
|
||||
# define BOOST_PP_DEC_354 353
|
||||
# define BOOST_PP_DEC_355 354
|
||||
# define BOOST_PP_DEC_356 355
|
||||
# define BOOST_PP_DEC_357 356
|
||||
# define BOOST_PP_DEC_358 357
|
||||
# define BOOST_PP_DEC_359 358
|
||||
# define BOOST_PP_DEC_360 359
|
||||
# define BOOST_PP_DEC_361 360
|
||||
# define BOOST_PP_DEC_362 361
|
||||
# define BOOST_PP_DEC_363 362
|
||||
# define BOOST_PP_DEC_364 363
|
||||
# define BOOST_PP_DEC_365 364
|
||||
# define BOOST_PP_DEC_366 365
|
||||
# define BOOST_PP_DEC_367 366
|
||||
# define BOOST_PP_DEC_368 367
|
||||
# define BOOST_PP_DEC_369 368
|
||||
# define BOOST_PP_DEC_370 369
|
||||
# define BOOST_PP_DEC_371 370
|
||||
# define BOOST_PP_DEC_372 371
|
||||
# define BOOST_PP_DEC_373 372
|
||||
# define BOOST_PP_DEC_374 373
|
||||
# define BOOST_PP_DEC_375 374
|
||||
# define BOOST_PP_DEC_376 375
|
||||
# define BOOST_PP_DEC_377 376
|
||||
# define BOOST_PP_DEC_378 377
|
||||
# define BOOST_PP_DEC_379 378
|
||||
# define BOOST_PP_DEC_380 379
|
||||
# define BOOST_PP_DEC_381 380
|
||||
# define BOOST_PP_DEC_382 381
|
||||
# define BOOST_PP_DEC_383 382
|
||||
# define BOOST_PP_DEC_384 383
|
||||
# define BOOST_PP_DEC_385 384
|
||||
# define BOOST_PP_DEC_386 385
|
||||
# define BOOST_PP_DEC_387 386
|
||||
# define BOOST_PP_DEC_388 387
|
||||
# define BOOST_PP_DEC_389 388
|
||||
# define BOOST_PP_DEC_390 389
|
||||
# define BOOST_PP_DEC_391 390
|
||||
# define BOOST_PP_DEC_392 391
|
||||
# define BOOST_PP_DEC_393 392
|
||||
# define BOOST_PP_DEC_394 393
|
||||
# define BOOST_PP_DEC_395 394
|
||||
# define BOOST_PP_DEC_396 395
|
||||
# define BOOST_PP_DEC_397 396
|
||||
# define BOOST_PP_DEC_398 397
|
||||
# define BOOST_PP_DEC_399 398
|
||||
# define BOOST_PP_DEC_400 399
|
||||
# define BOOST_PP_DEC_401 400
|
||||
# define BOOST_PP_DEC_402 401
|
||||
# define BOOST_PP_DEC_403 402
|
||||
# define BOOST_PP_DEC_404 403
|
||||
# define BOOST_PP_DEC_405 404
|
||||
# define BOOST_PP_DEC_406 405
|
||||
# define BOOST_PP_DEC_407 406
|
||||
# define BOOST_PP_DEC_408 407
|
||||
# define BOOST_PP_DEC_409 408
|
||||
# define BOOST_PP_DEC_410 409
|
||||
# define BOOST_PP_DEC_411 410
|
||||
# define BOOST_PP_DEC_412 411
|
||||
# define BOOST_PP_DEC_413 412
|
||||
# define BOOST_PP_DEC_414 413
|
||||
# define BOOST_PP_DEC_415 414
|
||||
# define BOOST_PP_DEC_416 415
|
||||
# define BOOST_PP_DEC_417 416
|
||||
# define BOOST_PP_DEC_418 417
|
||||
# define BOOST_PP_DEC_419 418
|
||||
# define BOOST_PP_DEC_420 419
|
||||
# define BOOST_PP_DEC_421 420
|
||||
# define BOOST_PP_DEC_422 421
|
||||
# define BOOST_PP_DEC_423 422
|
||||
# define BOOST_PP_DEC_424 423
|
||||
# define BOOST_PP_DEC_425 424
|
||||
# define BOOST_PP_DEC_426 425
|
||||
# define BOOST_PP_DEC_427 426
|
||||
# define BOOST_PP_DEC_428 427
|
||||
# define BOOST_PP_DEC_429 428
|
||||
# define BOOST_PP_DEC_430 429
|
||||
# define BOOST_PP_DEC_431 430
|
||||
# define BOOST_PP_DEC_432 431
|
||||
# define BOOST_PP_DEC_433 432
|
||||
# define BOOST_PP_DEC_434 433
|
||||
# define BOOST_PP_DEC_435 434
|
||||
# define BOOST_PP_DEC_436 435
|
||||
# define BOOST_PP_DEC_437 436
|
||||
# define BOOST_PP_DEC_438 437
|
||||
# define BOOST_PP_DEC_439 438
|
||||
# define BOOST_PP_DEC_440 439
|
||||
# define BOOST_PP_DEC_441 440
|
||||
# define BOOST_PP_DEC_442 441
|
||||
# define BOOST_PP_DEC_443 442
|
||||
# define BOOST_PP_DEC_444 443
|
||||
# define BOOST_PP_DEC_445 444
|
||||
# define BOOST_PP_DEC_446 445
|
||||
# define BOOST_PP_DEC_447 446
|
||||
# define BOOST_PP_DEC_448 447
|
||||
# define BOOST_PP_DEC_449 448
|
||||
# define BOOST_PP_DEC_450 449
|
||||
# define BOOST_PP_DEC_451 450
|
||||
# define BOOST_PP_DEC_452 451
|
||||
# define BOOST_PP_DEC_453 452
|
||||
# define BOOST_PP_DEC_454 453
|
||||
# define BOOST_PP_DEC_455 454
|
||||
# define BOOST_PP_DEC_456 455
|
||||
# define BOOST_PP_DEC_457 456
|
||||
# define BOOST_PP_DEC_458 457
|
||||
# define BOOST_PP_DEC_459 458
|
||||
# define BOOST_PP_DEC_460 459
|
||||
# define BOOST_PP_DEC_461 460
|
||||
# define BOOST_PP_DEC_462 461
|
||||
# define BOOST_PP_DEC_463 462
|
||||
# define BOOST_PP_DEC_464 463
|
||||
# define BOOST_PP_DEC_465 464
|
||||
# define BOOST_PP_DEC_466 465
|
||||
# define BOOST_PP_DEC_467 466
|
||||
# define BOOST_PP_DEC_468 467
|
||||
# define BOOST_PP_DEC_469 468
|
||||
# define BOOST_PP_DEC_470 469
|
||||
# define BOOST_PP_DEC_471 470
|
||||
# define BOOST_PP_DEC_472 471
|
||||
# define BOOST_PP_DEC_473 472
|
||||
# define BOOST_PP_DEC_474 473
|
||||
# define BOOST_PP_DEC_475 474
|
||||
# define BOOST_PP_DEC_476 475
|
||||
# define BOOST_PP_DEC_477 476
|
||||
# define BOOST_PP_DEC_478 477
|
||||
# define BOOST_PP_DEC_479 478
|
||||
# define BOOST_PP_DEC_480 479
|
||||
# define BOOST_PP_DEC_481 480
|
||||
# define BOOST_PP_DEC_482 481
|
||||
# define BOOST_PP_DEC_483 482
|
||||
# define BOOST_PP_DEC_484 483
|
||||
# define BOOST_PP_DEC_485 484
|
||||
# define BOOST_PP_DEC_486 485
|
||||
# define BOOST_PP_DEC_487 486
|
||||
# define BOOST_PP_DEC_488 487
|
||||
# define BOOST_PP_DEC_489 488
|
||||
# define BOOST_PP_DEC_490 489
|
||||
# define BOOST_PP_DEC_491 490
|
||||
# define BOOST_PP_DEC_492 491
|
||||
# define BOOST_PP_DEC_493 492
|
||||
# define BOOST_PP_DEC_494 493
|
||||
# define BOOST_PP_DEC_495 494
|
||||
# define BOOST_PP_DEC_496 495
|
||||
# define BOOST_PP_DEC_497 496
|
||||
# define BOOST_PP_DEC_498 497
|
||||
# define BOOST_PP_DEC_499 498
|
||||
# define BOOST_PP_DEC_500 499
|
||||
# define BOOST_PP_DEC_501 500
|
||||
# define BOOST_PP_DEC_502 501
|
||||
# define BOOST_PP_DEC_503 502
|
||||
# define BOOST_PP_DEC_504 503
|
||||
# define BOOST_PP_DEC_505 504
|
||||
# define BOOST_PP_DEC_506 505
|
||||
# define BOOST_PP_DEC_507 506
|
||||
# define BOOST_PP_DEC_508 507
|
||||
# define BOOST_PP_DEC_509 508
|
||||
# define BOOST_PP_DEC_510 509
|
||||
# define BOOST_PP_DEC_511 510
|
||||
# define BOOST_PP_DEC_512 511
|
||||
# define BOOST_PP_DEC_513 512
|
||||
#
|
||||
# endif
|
536
include/boost/preprocessor/arithmetic/limits/inc_1024.hpp
Normal file
536
include/boost/preprocessor/arithmetic/limits/inc_1024.hpp
Normal file
@ -0,0 +1,536 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_1024_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_INC_1024_HPP
|
||||
#
|
||||
# if defined(BOOST_PP_INC_512)
|
||||
# undef BOOST_PP_INC_512
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_INC_512 513
|
||||
# define BOOST_PP_INC_513 514
|
||||
# define BOOST_PP_INC_514 515
|
||||
# define BOOST_PP_INC_515 516
|
||||
# define BOOST_PP_INC_516 517
|
||||
# define BOOST_PP_INC_517 518
|
||||
# define BOOST_PP_INC_518 519
|
||||
# define BOOST_PP_INC_519 520
|
||||
# define BOOST_PP_INC_520 521
|
||||
# define BOOST_PP_INC_521 522
|
||||
# define BOOST_PP_INC_522 523
|
||||
# define BOOST_PP_INC_523 524
|
||||
# define BOOST_PP_INC_524 525
|
||||
# define BOOST_PP_INC_525 526
|
||||
# define BOOST_PP_INC_526 527
|
||||
# define BOOST_PP_INC_527 528
|
||||
# define BOOST_PP_INC_528 529
|
||||
# define BOOST_PP_INC_529 530
|
||||
# define BOOST_PP_INC_530 531
|
||||
# define BOOST_PP_INC_531 532
|
||||
# define BOOST_PP_INC_532 533
|
||||
# define BOOST_PP_INC_533 534
|
||||
# define BOOST_PP_INC_534 535
|
||||
# define BOOST_PP_INC_535 536
|
||||
# define BOOST_PP_INC_536 537
|
||||
# define BOOST_PP_INC_537 538
|
||||
# define BOOST_PP_INC_538 539
|
||||
# define BOOST_PP_INC_539 540
|
||||
# define BOOST_PP_INC_540 541
|
||||
# define BOOST_PP_INC_541 542
|
||||
# define BOOST_PP_INC_542 543
|
||||
# define BOOST_PP_INC_543 544
|
||||
# define BOOST_PP_INC_544 545
|
||||
# define BOOST_PP_INC_545 546
|
||||
# define BOOST_PP_INC_546 547
|
||||
# define BOOST_PP_INC_547 548
|
||||
# define BOOST_PP_INC_548 549
|
||||
# define BOOST_PP_INC_549 550
|
||||
# define BOOST_PP_INC_550 551
|
||||
# define BOOST_PP_INC_551 552
|
||||
# define BOOST_PP_INC_552 553
|
||||
# define BOOST_PP_INC_553 554
|
||||
# define BOOST_PP_INC_554 555
|
||||
# define BOOST_PP_INC_555 556
|
||||
# define BOOST_PP_INC_556 557
|
||||
# define BOOST_PP_INC_557 558
|
||||
# define BOOST_PP_INC_558 559
|
||||
# define BOOST_PP_INC_559 560
|
||||
# define BOOST_PP_INC_560 561
|
||||
# define BOOST_PP_INC_561 562
|
||||
# define BOOST_PP_INC_562 563
|
||||
# define BOOST_PP_INC_563 564
|
||||
# define BOOST_PP_INC_564 565
|
||||
# define BOOST_PP_INC_565 566
|
||||
# define BOOST_PP_INC_566 567
|
||||
# define BOOST_PP_INC_567 568
|
||||
# define BOOST_PP_INC_568 569
|
||||
# define BOOST_PP_INC_569 570
|
||||
# define BOOST_PP_INC_570 571
|
||||
# define BOOST_PP_INC_571 572
|
||||
# define BOOST_PP_INC_572 573
|
||||
# define BOOST_PP_INC_573 574
|
||||
# define BOOST_PP_INC_574 575
|
||||
# define BOOST_PP_INC_575 576
|
||||
# define BOOST_PP_INC_576 577
|
||||
# define BOOST_PP_INC_577 578
|
||||
# define BOOST_PP_INC_578 579
|
||||
# define BOOST_PP_INC_579 580
|
||||
# define BOOST_PP_INC_580 581
|
||||
# define BOOST_PP_INC_581 582
|
||||
# define BOOST_PP_INC_582 583
|
||||
# define BOOST_PP_INC_583 584
|
||||
# define BOOST_PP_INC_584 585
|
||||
# define BOOST_PP_INC_585 586
|
||||
# define BOOST_PP_INC_586 587
|
||||
# define BOOST_PP_INC_587 588
|
||||
# define BOOST_PP_INC_588 589
|
||||
# define BOOST_PP_INC_589 590
|
||||
# define BOOST_PP_INC_590 591
|
||||
# define BOOST_PP_INC_591 592
|
||||
# define BOOST_PP_INC_592 593
|
||||
# define BOOST_PP_INC_593 594
|
||||
# define BOOST_PP_INC_594 595
|
||||
# define BOOST_PP_INC_595 596
|
||||
# define BOOST_PP_INC_596 597
|
||||
# define BOOST_PP_INC_597 598
|
||||
# define BOOST_PP_INC_598 599
|
||||
# define BOOST_PP_INC_599 600
|
||||
# define BOOST_PP_INC_600 601
|
||||
# define BOOST_PP_INC_601 602
|
||||
# define BOOST_PP_INC_602 603
|
||||
# define BOOST_PP_INC_603 604
|
||||
# define BOOST_PP_INC_604 605
|
||||
# define BOOST_PP_INC_605 606
|
||||
# define BOOST_PP_INC_606 607
|
||||
# define BOOST_PP_INC_607 608
|
||||
# define BOOST_PP_INC_608 609
|
||||
# define BOOST_PP_INC_609 610
|
||||
# define BOOST_PP_INC_610 611
|
||||
# define BOOST_PP_INC_611 612
|
||||
# define BOOST_PP_INC_612 613
|
||||
# define BOOST_PP_INC_613 614
|
||||
# define BOOST_PP_INC_614 615
|
||||
# define BOOST_PP_INC_615 616
|
||||
# define BOOST_PP_INC_616 617
|
||||
# define BOOST_PP_INC_617 618
|
||||
# define BOOST_PP_INC_618 619
|
||||
# define BOOST_PP_INC_619 620
|
||||
# define BOOST_PP_INC_620 621
|
||||
# define BOOST_PP_INC_621 622
|
||||
# define BOOST_PP_INC_622 623
|
||||
# define BOOST_PP_INC_623 624
|
||||
# define BOOST_PP_INC_624 625
|
||||
# define BOOST_PP_INC_625 626
|
||||
# define BOOST_PP_INC_626 627
|
||||
# define BOOST_PP_INC_627 628
|
||||
# define BOOST_PP_INC_628 629
|
||||
# define BOOST_PP_INC_629 630
|
||||
# define BOOST_PP_INC_630 631
|
||||
# define BOOST_PP_INC_631 632
|
||||
# define BOOST_PP_INC_632 633
|
||||
# define BOOST_PP_INC_633 634
|
||||
# define BOOST_PP_INC_634 635
|
||||
# define BOOST_PP_INC_635 636
|
||||
# define BOOST_PP_INC_636 637
|
||||
# define BOOST_PP_INC_637 638
|
||||
# define BOOST_PP_INC_638 639
|
||||
# define BOOST_PP_INC_639 640
|
||||
# define BOOST_PP_INC_640 641
|
||||
# define BOOST_PP_INC_641 642
|
||||
# define BOOST_PP_INC_642 643
|
||||
# define BOOST_PP_INC_643 644
|
||||
# define BOOST_PP_INC_644 645
|
||||
# define BOOST_PP_INC_645 646
|
||||
# define BOOST_PP_INC_646 647
|
||||
# define BOOST_PP_INC_647 648
|
||||
# define BOOST_PP_INC_648 649
|
||||
# define BOOST_PP_INC_649 650
|
||||
# define BOOST_PP_INC_650 651
|
||||
# define BOOST_PP_INC_651 652
|
||||
# define BOOST_PP_INC_652 653
|
||||
# define BOOST_PP_INC_653 654
|
||||
# define BOOST_PP_INC_654 655
|
||||
# define BOOST_PP_INC_655 656
|
||||
# define BOOST_PP_INC_656 657
|
||||
# define BOOST_PP_INC_657 658
|
||||
# define BOOST_PP_INC_658 659
|
||||
# define BOOST_PP_INC_659 660
|
||||
# define BOOST_PP_INC_660 661
|
||||
# define BOOST_PP_INC_661 662
|
||||
# define BOOST_PP_INC_662 663
|
||||
# define BOOST_PP_INC_663 664
|
||||
# define BOOST_PP_INC_664 665
|
||||
# define BOOST_PP_INC_665 666
|
||||
# define BOOST_PP_INC_666 667
|
||||
# define BOOST_PP_INC_667 668
|
||||
# define BOOST_PP_INC_668 669
|
||||
# define BOOST_PP_INC_669 670
|
||||
# define BOOST_PP_INC_670 671
|
||||
# define BOOST_PP_INC_671 672
|
||||
# define BOOST_PP_INC_672 673
|
||||
# define BOOST_PP_INC_673 674
|
||||
# define BOOST_PP_INC_674 675
|
||||
# define BOOST_PP_INC_675 676
|
||||
# define BOOST_PP_INC_676 677
|
||||
# define BOOST_PP_INC_677 678
|
||||
# define BOOST_PP_INC_678 679
|
||||
# define BOOST_PP_INC_679 680
|
||||
# define BOOST_PP_INC_680 681
|
||||
# define BOOST_PP_INC_681 682
|
||||
# define BOOST_PP_INC_682 683
|
||||
# define BOOST_PP_INC_683 684
|
||||
# define BOOST_PP_INC_684 685
|
||||
# define BOOST_PP_INC_685 686
|
||||
# define BOOST_PP_INC_686 687
|
||||
# define BOOST_PP_INC_687 688
|
||||
# define BOOST_PP_INC_688 689
|
||||
# define BOOST_PP_INC_689 690
|
||||
# define BOOST_PP_INC_690 691
|
||||
# define BOOST_PP_INC_691 692
|
||||
# define BOOST_PP_INC_692 693
|
||||
# define BOOST_PP_INC_693 694
|
||||
# define BOOST_PP_INC_694 695
|
||||
# define BOOST_PP_INC_695 696
|
||||
# define BOOST_PP_INC_696 697
|
||||
# define BOOST_PP_INC_697 698
|
||||
# define BOOST_PP_INC_698 699
|
||||
# define BOOST_PP_INC_699 700
|
||||
# define BOOST_PP_INC_700 701
|
||||
# define BOOST_PP_INC_701 702
|
||||
# define BOOST_PP_INC_702 703
|
||||
# define BOOST_PP_INC_703 704
|
||||
# define BOOST_PP_INC_704 705
|
||||
# define BOOST_PP_INC_705 706
|
||||
# define BOOST_PP_INC_706 707
|
||||
# define BOOST_PP_INC_707 708
|
||||
# define BOOST_PP_INC_708 709
|
||||
# define BOOST_PP_INC_709 710
|
||||
# define BOOST_PP_INC_710 711
|
||||
# define BOOST_PP_INC_711 712
|
||||
# define BOOST_PP_INC_712 713
|
||||
# define BOOST_PP_INC_713 714
|
||||
# define BOOST_PP_INC_714 715
|
||||
# define BOOST_PP_INC_715 716
|
||||
# define BOOST_PP_INC_716 717
|
||||
# define BOOST_PP_INC_717 718
|
||||
# define BOOST_PP_INC_718 719
|
||||
# define BOOST_PP_INC_719 720
|
||||
# define BOOST_PP_INC_720 721
|
||||
# define BOOST_PP_INC_721 722
|
||||
# define BOOST_PP_INC_722 723
|
||||
# define BOOST_PP_INC_723 724
|
||||
# define BOOST_PP_INC_724 725
|
||||
# define BOOST_PP_INC_725 726
|
||||
# define BOOST_PP_INC_726 727
|
||||
# define BOOST_PP_INC_727 728
|
||||
# define BOOST_PP_INC_728 729
|
||||
# define BOOST_PP_INC_729 730
|
||||
# define BOOST_PP_INC_730 731
|
||||
# define BOOST_PP_INC_731 732
|
||||
# define BOOST_PP_INC_732 733
|
||||
# define BOOST_PP_INC_733 734
|
||||
# define BOOST_PP_INC_734 735
|
||||
# define BOOST_PP_INC_735 736
|
||||
# define BOOST_PP_INC_736 737
|
||||
# define BOOST_PP_INC_737 738
|
||||
# define BOOST_PP_INC_738 739
|
||||
# define BOOST_PP_INC_739 740
|
||||
# define BOOST_PP_INC_740 741
|
||||
# define BOOST_PP_INC_741 742
|
||||
# define BOOST_PP_INC_742 743
|
||||
# define BOOST_PP_INC_743 744
|
||||
# define BOOST_PP_INC_744 745
|
||||
# define BOOST_PP_INC_745 746
|
||||
# define BOOST_PP_INC_746 747
|
||||
# define BOOST_PP_INC_747 748
|
||||
# define BOOST_PP_INC_748 749
|
||||
# define BOOST_PP_INC_749 750
|
||||
# define BOOST_PP_INC_750 751
|
||||
# define BOOST_PP_INC_751 752
|
||||
# define BOOST_PP_INC_752 753
|
||||
# define BOOST_PP_INC_753 754
|
||||
# define BOOST_PP_INC_754 755
|
||||
# define BOOST_PP_INC_755 756
|
||||
# define BOOST_PP_INC_756 757
|
||||
# define BOOST_PP_INC_757 758
|
||||
# define BOOST_PP_INC_758 759
|
||||
# define BOOST_PP_INC_759 760
|
||||
# define BOOST_PP_INC_760 761
|
||||
# define BOOST_PP_INC_761 762
|
||||
# define BOOST_PP_INC_762 763
|
||||
# define BOOST_PP_INC_763 764
|
||||
# define BOOST_PP_INC_764 765
|
||||
# define BOOST_PP_INC_765 766
|
||||
# define BOOST_PP_INC_766 767
|
||||
# define BOOST_PP_INC_767 768
|
||||
# define BOOST_PP_INC_768 769
|
||||
# define BOOST_PP_INC_769 770
|
||||
# define BOOST_PP_INC_770 771
|
||||
# define BOOST_PP_INC_771 772
|
||||
# define BOOST_PP_INC_772 773
|
||||
# define BOOST_PP_INC_773 774
|
||||
# define BOOST_PP_INC_774 775
|
||||
# define BOOST_PP_INC_775 776
|
||||
# define BOOST_PP_INC_776 777
|
||||
# define BOOST_PP_INC_777 778
|
||||
# define BOOST_PP_INC_778 779
|
||||
# define BOOST_PP_INC_779 780
|
||||
# define BOOST_PP_INC_780 781
|
||||
# define BOOST_PP_INC_781 782
|
||||
# define BOOST_PP_INC_782 783
|
||||
# define BOOST_PP_INC_783 784
|
||||
# define BOOST_PP_INC_784 785
|
||||
# define BOOST_PP_INC_785 786
|
||||
# define BOOST_PP_INC_786 787
|
||||
# define BOOST_PP_INC_787 788
|
||||
# define BOOST_PP_INC_788 789
|
||||
# define BOOST_PP_INC_789 790
|
||||
# define BOOST_PP_INC_790 791
|
||||
# define BOOST_PP_INC_791 792
|
||||
# define BOOST_PP_INC_792 793
|
||||
# define BOOST_PP_INC_793 794
|
||||
# define BOOST_PP_INC_794 795
|
||||
# define BOOST_PP_INC_795 796
|
||||
# define BOOST_PP_INC_796 797
|
||||
# define BOOST_PP_INC_797 798
|
||||
# define BOOST_PP_INC_798 799
|
||||
# define BOOST_PP_INC_799 800
|
||||
# define BOOST_PP_INC_800 801
|
||||
# define BOOST_PP_INC_801 802
|
||||
# define BOOST_PP_INC_802 803
|
||||
# define BOOST_PP_INC_803 804
|
||||
# define BOOST_PP_INC_804 805
|
||||
# define BOOST_PP_INC_805 806
|
||||
# define BOOST_PP_INC_806 807
|
||||
# define BOOST_PP_INC_807 808
|
||||
# define BOOST_PP_INC_808 809
|
||||
# define BOOST_PP_INC_809 810
|
||||
# define BOOST_PP_INC_810 811
|
||||
# define BOOST_PP_INC_811 812
|
||||
# define BOOST_PP_INC_812 813
|
||||
# define BOOST_PP_INC_813 814
|
||||
# define BOOST_PP_INC_814 815
|
||||
# define BOOST_PP_INC_815 816
|
||||
# define BOOST_PP_INC_816 817
|
||||
# define BOOST_PP_INC_817 818
|
||||
# define BOOST_PP_INC_818 819
|
||||
# define BOOST_PP_INC_819 820
|
||||
# define BOOST_PP_INC_820 821
|
||||
# define BOOST_PP_INC_821 822
|
||||
# define BOOST_PP_INC_822 823
|
||||
# define BOOST_PP_INC_823 824
|
||||
# define BOOST_PP_INC_824 825
|
||||
# define BOOST_PP_INC_825 826
|
||||
# define BOOST_PP_INC_826 827
|
||||
# define BOOST_PP_INC_827 828
|
||||
# define BOOST_PP_INC_828 829
|
||||
# define BOOST_PP_INC_829 830
|
||||
# define BOOST_PP_INC_830 831
|
||||
# define BOOST_PP_INC_831 832
|
||||
# define BOOST_PP_INC_832 833
|
||||
# define BOOST_PP_INC_833 834
|
||||
# define BOOST_PP_INC_834 835
|
||||
# define BOOST_PP_INC_835 836
|
||||
# define BOOST_PP_INC_836 837
|
||||
# define BOOST_PP_INC_837 838
|
||||
# define BOOST_PP_INC_838 839
|
||||
# define BOOST_PP_INC_839 840
|
||||
# define BOOST_PP_INC_840 841
|
||||
# define BOOST_PP_INC_841 842
|
||||
# define BOOST_PP_INC_842 843
|
||||
# define BOOST_PP_INC_843 844
|
||||
# define BOOST_PP_INC_844 845
|
||||
# define BOOST_PP_INC_845 846
|
||||
# define BOOST_PP_INC_846 847
|
||||
# define BOOST_PP_INC_847 848
|
||||
# define BOOST_PP_INC_848 849
|
||||
# define BOOST_PP_INC_849 850
|
||||
# define BOOST_PP_INC_850 851
|
||||
# define BOOST_PP_INC_851 852
|
||||
# define BOOST_PP_INC_852 853
|
||||
# define BOOST_PP_INC_853 854
|
||||
# define BOOST_PP_INC_854 855
|
||||
# define BOOST_PP_INC_855 856
|
||||
# define BOOST_PP_INC_856 857
|
||||
# define BOOST_PP_INC_857 858
|
||||
# define BOOST_PP_INC_858 859
|
||||
# define BOOST_PP_INC_859 860
|
||||
# define BOOST_PP_INC_860 861
|
||||
# define BOOST_PP_INC_861 862
|
||||
# define BOOST_PP_INC_862 863
|
||||
# define BOOST_PP_INC_863 864
|
||||
# define BOOST_PP_INC_864 865
|
||||
# define BOOST_PP_INC_865 866
|
||||
# define BOOST_PP_INC_866 867
|
||||
# define BOOST_PP_INC_867 868
|
||||
# define BOOST_PP_INC_868 869
|
||||
# define BOOST_PP_INC_869 870
|
||||
# define BOOST_PP_INC_870 871
|
||||
# define BOOST_PP_INC_871 872
|
||||
# define BOOST_PP_INC_872 873
|
||||
# define BOOST_PP_INC_873 874
|
||||
# define BOOST_PP_INC_874 875
|
||||
# define BOOST_PP_INC_875 876
|
||||
# define BOOST_PP_INC_876 877
|
||||
# define BOOST_PP_INC_877 878
|
||||
# define BOOST_PP_INC_878 879
|
||||
# define BOOST_PP_INC_879 880
|
||||
# define BOOST_PP_INC_880 881
|
||||
# define BOOST_PP_INC_881 882
|
||||
# define BOOST_PP_INC_882 883
|
||||
# define BOOST_PP_INC_883 884
|
||||
# define BOOST_PP_INC_884 885
|
||||
# define BOOST_PP_INC_885 886
|
||||
# define BOOST_PP_INC_886 887
|
||||
# define BOOST_PP_INC_887 888
|
||||
# define BOOST_PP_INC_888 889
|
||||
# define BOOST_PP_INC_889 890
|
||||
# define BOOST_PP_INC_890 891
|
||||
# define BOOST_PP_INC_891 892
|
||||
# define BOOST_PP_INC_892 893
|
||||
# define BOOST_PP_INC_893 894
|
||||
# define BOOST_PP_INC_894 895
|
||||
# define BOOST_PP_INC_895 896
|
||||
# define BOOST_PP_INC_896 897
|
||||
# define BOOST_PP_INC_897 898
|
||||
# define BOOST_PP_INC_898 899
|
||||
# define BOOST_PP_INC_899 900
|
||||
# define BOOST_PP_INC_900 901
|
||||
# define BOOST_PP_INC_901 902
|
||||
# define BOOST_PP_INC_902 903
|
||||
# define BOOST_PP_INC_903 904
|
||||
# define BOOST_PP_INC_904 905
|
||||
# define BOOST_PP_INC_905 906
|
||||
# define BOOST_PP_INC_906 907
|
||||
# define BOOST_PP_INC_907 908
|
||||
# define BOOST_PP_INC_908 909
|
||||
# define BOOST_PP_INC_909 910
|
||||
# define BOOST_PP_INC_910 911
|
||||
# define BOOST_PP_INC_911 912
|
||||
# define BOOST_PP_INC_912 913
|
||||
# define BOOST_PP_INC_913 914
|
||||
# define BOOST_PP_INC_914 915
|
||||
# define BOOST_PP_INC_915 916
|
||||
# define BOOST_PP_INC_916 917
|
||||
# define BOOST_PP_INC_917 918
|
||||
# define BOOST_PP_INC_918 919
|
||||
# define BOOST_PP_INC_919 920
|
||||
# define BOOST_PP_INC_920 921
|
||||
# define BOOST_PP_INC_921 922
|
||||
# define BOOST_PP_INC_922 923
|
||||
# define BOOST_PP_INC_923 924
|
||||
# define BOOST_PP_INC_924 925
|
||||
# define BOOST_PP_INC_925 926
|
||||
# define BOOST_PP_INC_926 927
|
||||
# define BOOST_PP_INC_927 928
|
||||
# define BOOST_PP_INC_928 929
|
||||
# define BOOST_PP_INC_929 930
|
||||
# define BOOST_PP_INC_930 931
|
||||
# define BOOST_PP_INC_931 932
|
||||
# define BOOST_PP_INC_932 933
|
||||
# define BOOST_PP_INC_933 934
|
||||
# define BOOST_PP_INC_934 935
|
||||
# define BOOST_PP_INC_935 936
|
||||
# define BOOST_PP_INC_936 937
|
||||
# define BOOST_PP_INC_937 938
|
||||
# define BOOST_PP_INC_938 939
|
||||
# define BOOST_PP_INC_939 940
|
||||
# define BOOST_PP_INC_940 941
|
||||
# define BOOST_PP_INC_941 942
|
||||
# define BOOST_PP_INC_942 943
|
||||
# define BOOST_PP_INC_943 944
|
||||
# define BOOST_PP_INC_944 945
|
||||
# define BOOST_PP_INC_945 946
|
||||
# define BOOST_PP_INC_946 947
|
||||
# define BOOST_PP_INC_947 948
|
||||
# define BOOST_PP_INC_948 949
|
||||
# define BOOST_PP_INC_949 950
|
||||
# define BOOST_PP_INC_950 951
|
||||
# define BOOST_PP_INC_951 952
|
||||
# define BOOST_PP_INC_952 953
|
||||
# define BOOST_PP_INC_953 954
|
||||
# define BOOST_PP_INC_954 955
|
||||
# define BOOST_PP_INC_955 956
|
||||
# define BOOST_PP_INC_956 957
|
||||
# define BOOST_PP_INC_957 958
|
||||
# define BOOST_PP_INC_958 959
|
||||
# define BOOST_PP_INC_959 960
|
||||
# define BOOST_PP_INC_960 961
|
||||
# define BOOST_PP_INC_961 962
|
||||
# define BOOST_PP_INC_962 963
|
||||
# define BOOST_PP_INC_963 964
|
||||
# define BOOST_PP_INC_964 965
|
||||
# define BOOST_PP_INC_965 966
|
||||
# define BOOST_PP_INC_966 967
|
||||
# define BOOST_PP_INC_967 968
|
||||
# define BOOST_PP_INC_968 969
|
||||
# define BOOST_PP_INC_969 970
|
||||
# define BOOST_PP_INC_970 971
|
||||
# define BOOST_PP_INC_971 972
|
||||
# define BOOST_PP_INC_972 973
|
||||
# define BOOST_PP_INC_973 974
|
||||
# define BOOST_PP_INC_974 975
|
||||
# define BOOST_PP_INC_975 976
|
||||
# define BOOST_PP_INC_976 977
|
||||
# define BOOST_PP_INC_977 978
|
||||
# define BOOST_PP_INC_978 979
|
||||
# define BOOST_PP_INC_979 980
|
||||
# define BOOST_PP_INC_980 981
|
||||
# define BOOST_PP_INC_981 982
|
||||
# define BOOST_PP_INC_982 983
|
||||
# define BOOST_PP_INC_983 984
|
||||
# define BOOST_PP_INC_984 985
|
||||
# define BOOST_PP_INC_985 986
|
||||
# define BOOST_PP_INC_986 987
|
||||
# define BOOST_PP_INC_987 988
|
||||
# define BOOST_PP_INC_988 989
|
||||
# define BOOST_PP_INC_989 990
|
||||
# define BOOST_PP_INC_990 991
|
||||
# define BOOST_PP_INC_991 992
|
||||
# define BOOST_PP_INC_992 993
|
||||
# define BOOST_PP_INC_993 994
|
||||
# define BOOST_PP_INC_994 995
|
||||
# define BOOST_PP_INC_995 996
|
||||
# define BOOST_PP_INC_996 997
|
||||
# define BOOST_PP_INC_997 998
|
||||
# define BOOST_PP_INC_998 999
|
||||
# define BOOST_PP_INC_999 1000
|
||||
# define BOOST_PP_INC_1000 1001
|
||||
# define BOOST_PP_INC_1001 1002
|
||||
# define BOOST_PP_INC_1002 1003
|
||||
# define BOOST_PP_INC_1003 1004
|
||||
# define BOOST_PP_INC_1004 1005
|
||||
# define BOOST_PP_INC_1005 1006
|
||||
# define BOOST_PP_INC_1006 1007
|
||||
# define BOOST_PP_INC_1007 1008
|
||||
# define BOOST_PP_INC_1008 1009
|
||||
# define BOOST_PP_INC_1009 1010
|
||||
# define BOOST_PP_INC_1010 1011
|
||||
# define BOOST_PP_INC_1011 1012
|
||||
# define BOOST_PP_INC_1012 1013
|
||||
# define BOOST_PP_INC_1013 1014
|
||||
# define BOOST_PP_INC_1014 1015
|
||||
# define BOOST_PP_INC_1015 1016
|
||||
# define BOOST_PP_INC_1016 1017
|
||||
# define BOOST_PP_INC_1017 1018
|
||||
# define BOOST_PP_INC_1018 1019
|
||||
# define BOOST_PP_INC_1019 1020
|
||||
# define BOOST_PP_INC_1020 1021
|
||||
# define BOOST_PP_INC_1021 1022
|
||||
# define BOOST_PP_INC_1022 1023
|
||||
# define BOOST_PP_INC_1023 1024
|
||||
# define BOOST_PP_INC_1024 1024
|
||||
#
|
||||
# endif
|
275
include/boost/preprocessor/arithmetic/limits/inc_256.hpp
Normal file
275
include/boost/preprocessor/arithmetic/limits/inc_256.hpp
Normal file
@ -0,0 +1,275 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_256_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_INC_256_HPP
|
||||
#
|
||||
# define BOOST_PP_INC_0 1
|
||||
# define BOOST_PP_INC_1 2
|
||||
# define BOOST_PP_INC_2 3
|
||||
# define BOOST_PP_INC_3 4
|
||||
# define BOOST_PP_INC_4 5
|
||||
# define BOOST_PP_INC_5 6
|
||||
# define BOOST_PP_INC_6 7
|
||||
# define BOOST_PP_INC_7 8
|
||||
# define BOOST_PP_INC_8 9
|
||||
# define BOOST_PP_INC_9 10
|
||||
# define BOOST_PP_INC_10 11
|
||||
# define BOOST_PP_INC_11 12
|
||||
# define BOOST_PP_INC_12 13
|
||||
# define BOOST_PP_INC_13 14
|
||||
# define BOOST_PP_INC_14 15
|
||||
# define BOOST_PP_INC_15 16
|
||||
# define BOOST_PP_INC_16 17
|
||||
# define BOOST_PP_INC_17 18
|
||||
# define BOOST_PP_INC_18 19
|
||||
# define BOOST_PP_INC_19 20
|
||||
# define BOOST_PP_INC_20 21
|
||||
# define BOOST_PP_INC_21 22
|
||||
# define BOOST_PP_INC_22 23
|
||||
# define BOOST_PP_INC_23 24
|
||||
# define BOOST_PP_INC_24 25
|
||||
# define BOOST_PP_INC_25 26
|
||||
# define BOOST_PP_INC_26 27
|
||||
# define BOOST_PP_INC_27 28
|
||||
# define BOOST_PP_INC_28 29
|
||||
# define BOOST_PP_INC_29 30
|
||||
# define BOOST_PP_INC_30 31
|
||||
# define BOOST_PP_INC_31 32
|
||||
# define BOOST_PP_INC_32 33
|
||||
# define BOOST_PP_INC_33 34
|
||||
# define BOOST_PP_INC_34 35
|
||||
# define BOOST_PP_INC_35 36
|
||||
# define BOOST_PP_INC_36 37
|
||||
# define BOOST_PP_INC_37 38
|
||||
# define BOOST_PP_INC_38 39
|
||||
# define BOOST_PP_INC_39 40
|
||||
# define BOOST_PP_INC_40 41
|
||||
# define BOOST_PP_INC_41 42
|
||||
# define BOOST_PP_INC_42 43
|
||||
# define BOOST_PP_INC_43 44
|
||||
# define BOOST_PP_INC_44 45
|
||||
# define BOOST_PP_INC_45 46
|
||||
# define BOOST_PP_INC_46 47
|
||||
# define BOOST_PP_INC_47 48
|
||||
# define BOOST_PP_INC_48 49
|
||||
# define BOOST_PP_INC_49 50
|
||||
# define BOOST_PP_INC_50 51
|
||||
# define BOOST_PP_INC_51 52
|
||||
# define BOOST_PP_INC_52 53
|
||||
# define BOOST_PP_INC_53 54
|
||||
# define BOOST_PP_INC_54 55
|
||||
# define BOOST_PP_INC_55 56
|
||||
# define BOOST_PP_INC_56 57
|
||||
# define BOOST_PP_INC_57 58
|
||||
# define BOOST_PP_INC_58 59
|
||||
# define BOOST_PP_INC_59 60
|
||||
# define BOOST_PP_INC_60 61
|
||||
# define BOOST_PP_INC_61 62
|
||||
# define BOOST_PP_INC_62 63
|
||||
# define BOOST_PP_INC_63 64
|
||||
# define BOOST_PP_INC_64 65
|
||||
# define BOOST_PP_INC_65 66
|
||||
# define BOOST_PP_INC_66 67
|
||||
# define BOOST_PP_INC_67 68
|
||||
# define BOOST_PP_INC_68 69
|
||||
# define BOOST_PP_INC_69 70
|
||||
# define BOOST_PP_INC_70 71
|
||||
# define BOOST_PP_INC_71 72
|
||||
# define BOOST_PP_INC_72 73
|
||||
# define BOOST_PP_INC_73 74
|
||||
# define BOOST_PP_INC_74 75
|
||||
# define BOOST_PP_INC_75 76
|
||||
# define BOOST_PP_INC_76 77
|
||||
# define BOOST_PP_INC_77 78
|
||||
# define BOOST_PP_INC_78 79
|
||||
# define BOOST_PP_INC_79 80
|
||||
# define BOOST_PP_INC_80 81
|
||||
# define BOOST_PP_INC_81 82
|
||||
# define BOOST_PP_INC_82 83
|
||||
# define BOOST_PP_INC_83 84
|
||||
# define BOOST_PP_INC_84 85
|
||||
# define BOOST_PP_INC_85 86
|
||||
# define BOOST_PP_INC_86 87
|
||||
# define BOOST_PP_INC_87 88
|
||||
# define BOOST_PP_INC_88 89
|
||||
# define BOOST_PP_INC_89 90
|
||||
# define BOOST_PP_INC_90 91
|
||||
# define BOOST_PP_INC_91 92
|
||||
# define BOOST_PP_INC_92 93
|
||||
# define BOOST_PP_INC_93 94
|
||||
# define BOOST_PP_INC_94 95
|
||||
# define BOOST_PP_INC_95 96
|
||||
# define BOOST_PP_INC_96 97
|
||||
# define BOOST_PP_INC_97 98
|
||||
# define BOOST_PP_INC_98 99
|
||||
# define BOOST_PP_INC_99 100
|
||||
# define BOOST_PP_INC_100 101
|
||||
# define BOOST_PP_INC_101 102
|
||||
# define BOOST_PP_INC_102 103
|
||||
# define BOOST_PP_INC_103 104
|
||||
# define BOOST_PP_INC_104 105
|
||||
# define BOOST_PP_INC_105 106
|
||||
# define BOOST_PP_INC_106 107
|
||||
# define BOOST_PP_INC_107 108
|
||||
# define BOOST_PP_INC_108 109
|
||||
# define BOOST_PP_INC_109 110
|
||||
# define BOOST_PP_INC_110 111
|
||||
# define BOOST_PP_INC_111 112
|
||||
# define BOOST_PP_INC_112 113
|
||||
# define BOOST_PP_INC_113 114
|
||||
# define BOOST_PP_INC_114 115
|
||||
# define BOOST_PP_INC_115 116
|
||||
# define BOOST_PP_INC_116 117
|
||||
# define BOOST_PP_INC_117 118
|
||||
# define BOOST_PP_INC_118 119
|
||||
# define BOOST_PP_INC_119 120
|
||||
# define BOOST_PP_INC_120 121
|
||||
# define BOOST_PP_INC_121 122
|
||||
# define BOOST_PP_INC_122 123
|
||||
# define BOOST_PP_INC_123 124
|
||||
# define BOOST_PP_INC_124 125
|
||||
# define BOOST_PP_INC_125 126
|
||||
# define BOOST_PP_INC_126 127
|
||||
# define BOOST_PP_INC_127 128
|
||||
# define BOOST_PP_INC_128 129
|
||||
# define BOOST_PP_INC_129 130
|
||||
# define BOOST_PP_INC_130 131
|
||||
# define BOOST_PP_INC_131 132
|
||||
# define BOOST_PP_INC_132 133
|
||||
# define BOOST_PP_INC_133 134
|
||||
# define BOOST_PP_INC_134 135
|
||||
# define BOOST_PP_INC_135 136
|
||||
# define BOOST_PP_INC_136 137
|
||||
# define BOOST_PP_INC_137 138
|
||||
# define BOOST_PP_INC_138 139
|
||||
# define BOOST_PP_INC_139 140
|
||||
# define BOOST_PP_INC_140 141
|
||||
# define BOOST_PP_INC_141 142
|
||||
# define BOOST_PP_INC_142 143
|
||||
# define BOOST_PP_INC_143 144
|
||||
# define BOOST_PP_INC_144 145
|
||||
# define BOOST_PP_INC_145 146
|
||||
# define BOOST_PP_INC_146 147
|
||||
# define BOOST_PP_INC_147 148
|
||||
# define BOOST_PP_INC_148 149
|
||||
# define BOOST_PP_INC_149 150
|
||||
# define BOOST_PP_INC_150 151
|
||||
# define BOOST_PP_INC_151 152
|
||||
# define BOOST_PP_INC_152 153
|
||||
# define BOOST_PP_INC_153 154
|
||||
# define BOOST_PP_INC_154 155
|
||||
# define BOOST_PP_INC_155 156
|
||||
# define BOOST_PP_INC_156 157
|
||||
# define BOOST_PP_INC_157 158
|
||||
# define BOOST_PP_INC_158 159
|
||||
# define BOOST_PP_INC_159 160
|
||||
# define BOOST_PP_INC_160 161
|
||||
# define BOOST_PP_INC_161 162
|
||||
# define BOOST_PP_INC_162 163
|
||||
# define BOOST_PP_INC_163 164
|
||||
# define BOOST_PP_INC_164 165
|
||||
# define BOOST_PP_INC_165 166
|
||||
# define BOOST_PP_INC_166 167
|
||||
# define BOOST_PP_INC_167 168
|
||||
# define BOOST_PP_INC_168 169
|
||||
# define BOOST_PP_INC_169 170
|
||||
# define BOOST_PP_INC_170 171
|
||||
# define BOOST_PP_INC_171 172
|
||||
# define BOOST_PP_INC_172 173
|
||||
# define BOOST_PP_INC_173 174
|
||||
# define BOOST_PP_INC_174 175
|
||||
# define BOOST_PP_INC_175 176
|
||||
# define BOOST_PP_INC_176 177
|
||||
# define BOOST_PP_INC_177 178
|
||||
# define BOOST_PP_INC_178 179
|
||||
# define BOOST_PP_INC_179 180
|
||||
# define BOOST_PP_INC_180 181
|
||||
# define BOOST_PP_INC_181 182
|
||||
# define BOOST_PP_INC_182 183
|
||||
# define BOOST_PP_INC_183 184
|
||||
# define BOOST_PP_INC_184 185
|
||||
# define BOOST_PP_INC_185 186
|
||||
# define BOOST_PP_INC_186 187
|
||||
# define BOOST_PP_INC_187 188
|
||||
# define BOOST_PP_INC_188 189
|
||||
# define BOOST_PP_INC_189 190
|
||||
# define BOOST_PP_INC_190 191
|
||||
# define BOOST_PP_INC_191 192
|
||||
# define BOOST_PP_INC_192 193
|
||||
# define BOOST_PP_INC_193 194
|
||||
# define BOOST_PP_INC_194 195
|
||||
# define BOOST_PP_INC_195 196
|
||||
# define BOOST_PP_INC_196 197
|
||||
# define BOOST_PP_INC_197 198
|
||||
# define BOOST_PP_INC_198 199
|
||||
# define BOOST_PP_INC_199 200
|
||||
# define BOOST_PP_INC_200 201
|
||||
# define BOOST_PP_INC_201 202
|
||||
# define BOOST_PP_INC_202 203
|
||||
# define BOOST_PP_INC_203 204
|
||||
# define BOOST_PP_INC_204 205
|
||||
# define BOOST_PP_INC_205 206
|
||||
# define BOOST_PP_INC_206 207
|
||||
# define BOOST_PP_INC_207 208
|
||||
# define BOOST_PP_INC_208 209
|
||||
# define BOOST_PP_INC_209 210
|
||||
# define BOOST_PP_INC_210 211
|
||||
# define BOOST_PP_INC_211 212
|
||||
# define BOOST_PP_INC_212 213
|
||||
# define BOOST_PP_INC_213 214
|
||||
# define BOOST_PP_INC_214 215
|
||||
# define BOOST_PP_INC_215 216
|
||||
# define BOOST_PP_INC_216 217
|
||||
# define BOOST_PP_INC_217 218
|
||||
# define BOOST_PP_INC_218 219
|
||||
# define BOOST_PP_INC_219 220
|
||||
# define BOOST_PP_INC_220 221
|
||||
# define BOOST_PP_INC_221 222
|
||||
# define BOOST_PP_INC_222 223
|
||||
# define BOOST_PP_INC_223 224
|
||||
# define BOOST_PP_INC_224 225
|
||||
# define BOOST_PP_INC_225 226
|
||||
# define BOOST_PP_INC_226 227
|
||||
# define BOOST_PP_INC_227 228
|
||||
# define BOOST_PP_INC_228 229
|
||||
# define BOOST_PP_INC_229 230
|
||||
# define BOOST_PP_INC_230 231
|
||||
# define BOOST_PP_INC_231 232
|
||||
# define BOOST_PP_INC_232 233
|
||||
# define BOOST_PP_INC_233 234
|
||||
# define BOOST_PP_INC_234 235
|
||||
# define BOOST_PP_INC_235 236
|
||||
# define BOOST_PP_INC_236 237
|
||||
# define BOOST_PP_INC_237 238
|
||||
# define BOOST_PP_INC_238 239
|
||||
# define BOOST_PP_INC_239 240
|
||||
# define BOOST_PP_INC_240 241
|
||||
# define BOOST_PP_INC_241 242
|
||||
# define BOOST_PP_INC_242 243
|
||||
# define BOOST_PP_INC_243 244
|
||||
# define BOOST_PP_INC_244 245
|
||||
# define BOOST_PP_INC_245 246
|
||||
# define BOOST_PP_INC_246 247
|
||||
# define BOOST_PP_INC_247 248
|
||||
# define BOOST_PP_INC_248 249
|
||||
# define BOOST_PP_INC_249 250
|
||||
# define BOOST_PP_INC_250 251
|
||||
# define BOOST_PP_INC_251 252
|
||||
# define BOOST_PP_INC_252 253
|
||||
# define BOOST_PP_INC_253 254
|
||||
# define BOOST_PP_INC_254 255
|
||||
# define BOOST_PP_INC_255 256
|
||||
# define BOOST_PP_INC_256 256
|
||||
#
|
||||
# endif
|
280
include/boost/preprocessor/arithmetic/limits/inc_512.hpp
Normal file
280
include/boost/preprocessor/arithmetic/limits/inc_512.hpp
Normal file
@ -0,0 +1,280 @@
|
||||
# /* Copyright (C) 2001
|
||||
# * Housemarque Oy
|
||||
# * http://www.housemarque.com
|
||||
# *
|
||||
# * 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)
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_512_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_INC_512_HPP
|
||||
#
|
||||
# if defined(BOOST_PP_INC_256)
|
||||
# undef BOOST_PP_INC_256
|
||||
# endif
|
||||
#
|
||||
# define BOOST_PP_INC_256 257
|
||||
# define BOOST_PP_INC_257 258
|
||||
# define BOOST_PP_INC_258 259
|
||||
# define BOOST_PP_INC_259 260
|
||||
# define BOOST_PP_INC_260 261
|
||||
# define BOOST_PP_INC_261 262
|
||||
# define BOOST_PP_INC_262 263
|
||||
# define BOOST_PP_INC_263 264
|
||||
# define BOOST_PP_INC_264 265
|
||||
# define BOOST_PP_INC_265 266
|
||||
# define BOOST_PP_INC_266 267
|
||||
# define BOOST_PP_INC_267 268
|
||||
# define BOOST_PP_INC_268 269
|
||||
# define BOOST_PP_INC_269 270
|
||||
# define BOOST_PP_INC_270 271
|
||||
# define BOOST_PP_INC_271 272
|
||||
# define BOOST_PP_INC_272 273
|
||||
# define BOOST_PP_INC_273 274
|
||||
# define BOOST_PP_INC_274 275
|
||||
# define BOOST_PP_INC_275 276
|
||||
# define BOOST_PP_INC_276 277
|
||||
# define BOOST_PP_INC_277 278
|
||||
# define BOOST_PP_INC_278 279
|
||||
# define BOOST_PP_INC_279 280
|
||||
# define BOOST_PP_INC_280 281
|
||||
# define BOOST_PP_INC_281 282
|
||||
# define BOOST_PP_INC_282 283
|
||||
# define BOOST_PP_INC_283 284
|
||||
# define BOOST_PP_INC_284 285
|
||||
# define BOOST_PP_INC_285 286
|
||||
# define BOOST_PP_INC_286 287
|
||||
# define BOOST_PP_INC_287 288
|
||||
# define BOOST_PP_INC_288 289
|
||||
# define BOOST_PP_INC_289 290
|
||||
# define BOOST_PP_INC_290 291
|
||||
# define BOOST_PP_INC_291 292
|
||||
# define BOOST_PP_INC_292 293
|
||||
# define BOOST_PP_INC_293 294
|
||||
# define BOOST_PP_INC_294 295
|
||||
# define BOOST_PP_INC_295 296
|
||||
# define BOOST_PP_INC_296 297
|
||||
# define BOOST_PP_INC_297 298
|
||||
# define BOOST_PP_INC_298 299
|
||||
# define BOOST_PP_INC_299 300
|
||||
# define BOOST_PP_INC_300 301
|
||||
# define BOOST_PP_INC_301 302
|
||||
# define BOOST_PP_INC_302 303
|
||||
# define BOOST_PP_INC_303 304
|
||||
# define BOOST_PP_INC_304 305
|
||||
# define BOOST_PP_INC_305 306
|
||||
# define BOOST_PP_INC_306 307
|
||||
# define BOOST_PP_INC_307 308
|
||||
# define BOOST_PP_INC_308 309
|
||||
# define BOOST_PP_INC_309 310
|
||||
# define BOOST_PP_INC_310 311
|
||||
# define BOOST_PP_INC_311 312
|
||||
# define BOOST_PP_INC_312 313
|
||||
# define BOOST_PP_INC_313 314
|
||||
# define BOOST_PP_INC_314 315
|
||||
# define BOOST_PP_INC_315 316
|
||||
# define BOOST_PP_INC_316 317
|
||||
# define BOOST_PP_INC_317 318
|
||||
# define BOOST_PP_INC_318 319
|
||||
# define BOOST_PP_INC_319 320
|
||||
# define BOOST_PP_INC_320 321
|
||||
# define BOOST_PP_INC_321 322
|
||||
# define BOOST_PP_INC_322 323
|
||||
# define BOOST_PP_INC_323 324
|
||||
# define BOOST_PP_INC_324 325
|
||||
# define BOOST_PP_INC_325 326
|
||||
# define BOOST_PP_INC_326 327
|
||||
# define BOOST_PP_INC_327 328
|
||||
# define BOOST_PP_INC_328 329
|
||||
# define BOOST_PP_INC_329 330
|
||||
# define BOOST_PP_INC_330 331
|
||||
# define BOOST_PP_INC_331 332
|
||||
# define BOOST_PP_INC_332 333
|
||||
# define BOOST_PP_INC_333 334
|
||||
# define BOOST_PP_INC_334 335
|
||||
# define BOOST_PP_INC_335 336
|
||||
# define BOOST_PP_INC_336 337
|
||||
# define BOOST_PP_INC_337 338
|
||||
# define BOOST_PP_INC_338 339
|
||||
# define BOOST_PP_INC_339 340
|
||||
# define BOOST_PP_INC_340 341
|
||||
# define BOOST_PP_INC_341 342
|
||||
# define BOOST_PP_INC_342 343
|
||||
# define BOOST_PP_INC_343 344
|
||||
# define BOOST_PP_INC_344 345
|
||||
# define BOOST_PP_INC_345 346
|
||||
# define BOOST_PP_INC_346 347
|
||||
# define BOOST_PP_INC_347 348
|
||||
# define BOOST_PP_INC_348 349
|
||||
# define BOOST_PP_INC_349 350
|
||||
# define BOOST_PP_INC_350 351
|
||||
# define BOOST_PP_INC_351 352
|
||||
# define BOOST_PP_INC_352 353
|
||||
# define BOOST_PP_INC_353 354
|
||||
# define BOOST_PP_INC_354 355
|
||||
# define BOOST_PP_INC_355 356
|
||||
# define BOOST_PP_INC_356 357
|
||||
# define BOOST_PP_INC_357 358
|
||||
# define BOOST_PP_INC_358 359
|
||||
# define BOOST_PP_INC_359 360
|
||||
# define BOOST_PP_INC_360 361
|
||||
# define BOOST_PP_INC_361 362
|
||||
# define BOOST_PP_INC_362 363
|
||||
# define BOOST_PP_INC_363 364
|
||||
# define BOOST_PP_INC_364 365
|
||||
# define BOOST_PP_INC_365 366
|
||||
# define BOOST_PP_INC_366 367
|
||||
# define BOOST_PP_INC_367 368
|
||||
# define BOOST_PP_INC_368 369
|
||||
# define BOOST_PP_INC_369 370
|
||||
# define BOOST_PP_INC_370 371
|
||||
# define BOOST_PP_INC_371 372
|
||||
# define BOOST_PP_INC_372 373
|
||||
# define BOOST_PP_INC_373 374
|
||||
# define BOOST_PP_INC_374 375
|
||||
# define BOOST_PP_INC_375 376
|
||||
# define BOOST_PP_INC_376 377
|
||||
# define BOOST_PP_INC_377 378
|
||||
# define BOOST_PP_INC_378 379
|
||||
# define BOOST_PP_INC_379 380
|
||||
# define BOOST_PP_INC_380 381
|
||||
# define BOOST_PP_INC_381 382
|
||||
# define BOOST_PP_INC_382 383
|
||||
# define BOOST_PP_INC_383 384
|
||||
# define BOOST_PP_INC_384 385
|
||||
# define BOOST_PP_INC_385 386
|
||||
# define BOOST_PP_INC_386 387
|
||||
# define BOOST_PP_INC_387 388
|
||||
# define BOOST_PP_INC_388 389
|
||||
# define BOOST_PP_INC_389 390
|
||||
# define BOOST_PP_INC_390 391
|
||||
# define BOOST_PP_INC_391 392
|
||||
# define BOOST_PP_INC_392 393
|
||||
# define BOOST_PP_INC_393 394
|
||||
# define BOOST_PP_INC_394 395
|
||||
# define BOOST_PP_INC_395 396
|
||||
# define BOOST_PP_INC_396 397
|
||||
# define BOOST_PP_INC_397 398
|
||||
# define BOOST_PP_INC_398 399
|
||||
# define BOOST_PP_INC_399 400
|
||||
# define BOOST_PP_INC_400 401
|
||||
# define BOOST_PP_INC_401 402
|
||||
# define BOOST_PP_INC_402 403
|
||||
# define BOOST_PP_INC_403 404
|
||||
# define BOOST_PP_INC_404 405
|
||||
# define BOOST_PP_INC_405 406
|
||||
# define BOOST_PP_INC_406 407
|
||||
# define BOOST_PP_INC_407 408
|
||||
# define BOOST_PP_INC_408 409
|
||||
# define BOOST_PP_INC_409 410
|
||||
# define BOOST_PP_INC_410 411
|
||||
# define BOOST_PP_INC_411 412
|
||||
# define BOOST_PP_INC_412 413
|
||||
# define BOOST_PP_INC_413 414
|
||||
# define BOOST_PP_INC_414 415
|
||||
# define BOOST_PP_INC_415 416
|
||||
# define BOOST_PP_INC_416 417
|
||||
# define BOOST_PP_INC_417 418
|
||||
# define BOOST_PP_INC_418 419
|
||||
# define BOOST_PP_INC_419 420
|
||||
# define BOOST_PP_INC_420 421
|
||||
# define BOOST_PP_INC_421 422
|
||||
# define BOOST_PP_INC_422 423
|
||||
# define BOOST_PP_INC_423 424
|
||||
# define BOOST_PP_INC_424 425
|
||||
# define BOOST_PP_INC_425 426
|
||||
# define BOOST_PP_INC_426 427
|
||||
# define BOOST_PP_INC_427 428
|
||||
# define BOOST_PP_INC_428 429
|
||||
# define BOOST_PP_INC_429 430
|
||||
# define BOOST_PP_INC_430 431
|
||||
# define BOOST_PP_INC_431 432
|
||||
# define BOOST_PP_INC_432 433
|
||||
# define BOOST_PP_INC_433 434
|
||||
# define BOOST_PP_INC_434 435
|
||||
# define BOOST_PP_INC_435 436
|
||||
# define BOOST_PP_INC_436 437
|
||||
# define BOOST_PP_INC_437 438
|
||||
# define BOOST_PP_INC_438 439
|
||||
# define BOOST_PP_INC_439 440
|
||||
# define BOOST_PP_INC_440 441
|
||||
# define BOOST_PP_INC_441 442
|
||||
# define BOOST_PP_INC_442 443
|
||||
# define BOOST_PP_INC_443 444
|
||||
# define BOOST_PP_INC_444 445
|
||||
# define BOOST_PP_INC_445 446
|
||||
# define BOOST_PP_INC_446 447
|
||||
# define BOOST_PP_INC_447 448
|
||||
# define BOOST_PP_INC_448 449
|
||||
# define BOOST_PP_INC_449 450
|
||||
# define BOOST_PP_INC_450 451
|
||||
# define BOOST_PP_INC_451 452
|
||||
# define BOOST_PP_INC_452 453
|
||||
# define BOOST_PP_INC_453 454
|
||||
# define BOOST_PP_INC_454 455
|
||||
# define BOOST_PP_INC_455 456
|
||||
# define BOOST_PP_INC_456 457
|
||||
# define BOOST_PP_INC_457 458
|
||||
# define BOOST_PP_INC_458 459
|
||||
# define BOOST_PP_INC_459 460
|
||||
# define BOOST_PP_INC_460 461
|
||||
# define BOOST_PP_INC_461 462
|
||||
# define BOOST_PP_INC_462 463
|
||||
# define BOOST_PP_INC_463 464
|
||||
# define BOOST_PP_INC_464 465
|
||||
# define BOOST_PP_INC_465 466
|
||||
# define BOOST_PP_INC_466 467
|
||||
# define BOOST_PP_INC_467 468
|
||||
# define BOOST_PP_INC_468 469
|
||||
# define BOOST_PP_INC_469 470
|
||||
# define BOOST_PP_INC_470 471
|
||||
# define BOOST_PP_INC_471 472
|
||||
# define BOOST_PP_INC_472 473
|
||||
# define BOOST_PP_INC_473 474
|
||||
# define BOOST_PP_INC_474 475
|
||||
# define BOOST_PP_INC_475 476
|
||||
# define BOOST_PP_INC_476 477
|
||||
# define BOOST_PP_INC_477 478
|
||||
# define BOOST_PP_INC_478 479
|
||||
# define BOOST_PP_INC_479 480
|
||||
# define BOOST_PP_INC_480 481
|
||||
# define BOOST_PP_INC_481 482
|
||||
# define BOOST_PP_INC_482 483
|
||||
# define BOOST_PP_INC_483 484
|
||||
# define BOOST_PP_INC_484 485
|
||||
# define BOOST_PP_INC_485 486
|
||||
# define BOOST_PP_INC_486 487
|
||||
# define BOOST_PP_INC_487 488
|
||||
# define BOOST_PP_INC_488 489
|
||||
# define BOOST_PP_INC_489 490
|
||||
# define BOOST_PP_INC_490 491
|
||||
# define BOOST_PP_INC_491 492
|
||||
# define BOOST_PP_INC_492 493
|
||||
# define BOOST_PP_INC_493 494
|
||||
# define BOOST_PP_INC_494 495
|
||||
# define BOOST_PP_INC_495 496
|
||||
# define BOOST_PP_INC_496 497
|
||||
# define BOOST_PP_INC_497 498
|
||||
# define BOOST_PP_INC_498 499
|
||||
# define BOOST_PP_INC_499 500
|
||||
# define BOOST_PP_INC_500 501
|
||||
# define BOOST_PP_INC_501 502
|
||||
# define BOOST_PP_INC_502 503
|
||||
# define BOOST_PP_INC_503 504
|
||||
# define BOOST_PP_INC_504 505
|
||||
# define BOOST_PP_INC_505 506
|
||||
# define BOOST_PP_INC_506 507
|
||||
# define BOOST_PP_INC_507 508
|
||||
# define BOOST_PP_INC_508 509
|
||||
# define BOOST_PP_INC_509 510
|
||||
# define BOOST_PP_INC_510 511
|
||||
# define BOOST_PP_INC_511 512
|
||||
# define BOOST_PP_INC_512 512
|
||||
#
|
||||
# endif
|
@ -8,14 +8,18 @@
|
||||
# */
|
||||
#
|
||||
# /* Revised by Paul Mensonides (2002) */
|
||||
# /* Revised by Edward Diener (2020) */
|
||||
#
|
||||
# /* See http://www.boost.org for most recent version. */
|
||||
#
|
||||
# ifndef BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
|
||||
# define BOOST_PREPROCESSOR_ARITHMETIC_MOD_HPP
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/config/config.hpp>
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
#
|
||||
# /* BOOST_PP_MOD */
|
||||
@ -36,4 +40,36 @@
|
||||
# define BOOST_PP_MOD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# endif
|
||||
#
|
||||
# else
|
||||
#
|
||||
# include <boost/preprocessor/arithmetic/detail/div_base.hpp>
|
||||
# include <boost/preprocessor/control/iif.hpp>
|
||||
# include <boost/preprocessor/facilities/identity.hpp>
|
||||
# include <boost/preprocessor/tuple/elem.hpp>
|
||||
# include <boost/preprocessor/arithmetic/detail/is_1_number.hpp>
|
||||
#
|
||||
# /* BOOST_PP_MOD */
|
||||
#
|
||||
# define BOOST_PP_MOD(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(0,2),BOOST_PP_MOD_DO)(x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_MOD_DO(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y))
|
||||
# else
|
||||
# define BOOST_PP_MOD_DO(x, y) BOOST_PP_MOD_I(x, y)
|
||||
# define BOOST_PP_MOD_I(x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE(x, y))
|
||||
# endif
|
||||
#
|
||||
# /* BOOST_PP_MOD_D */
|
||||
#
|
||||
# define BOOST_PP_MOD_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(0,3),BOOST_PP_MOD_DO_D)(d,x,y)
|
||||
#
|
||||
# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
|
||||
# define BOOST_PP_MOD_DO_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# else
|
||||
# define BOOST_PP_MOD_DO_D(d, x, y) BOOST_PP_MOD_D_I(d, x, y)
|
||||
# define BOOST_PP_MOD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 1, BOOST_PP_DIV_BASE_D(d, x, y))
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
#
|
||||
# endif
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user