Compare commits

...

777 Commits

Author SHA1 Message Date
667e87b339 Change C test names to not conflict with the C++ ones 2022-08-16 20:59:52 +03:00
e919b652af Disable __VA_OPT__ on g++ 8/9 in c++2a mode, as vaopt.cpp fails 2022-08-16 19:09:04 +03:00
108a948323 Add .github/workflows 2022-08-16 11:31:06 +03:00
eacc296fa5 Merge branch 'master' into develop 2022-08-16 11:27:43 +03:00
d4e82d7d3f Merge branch 'develop' 2021-06-27 13:24:38 -04:00
69614bb1da Fix CMake tests in .travis.yml 2021-06-10 16:37:10 +03:00
24abbdc906 Update CMakeLists.txt 2021-06-10 02:09:03 +03:00
45178c3cc5 Merge branch 'master' into develop 2021-06-10 02:07:17 +03:00
93b896c932 Corrected cmake tests 2021-05-29 08:59:36 -04:00
229f654b59 Merge branch 'develop' 2021-02-15 16:07:36 -05:00
aa8f347df2 Treat nvcc compiling in cuda mode with _MSC_VER defined as if it is the VC++ default preprocessor as far as variadic macro support is concerned. 2021-02-11 23:38:30 -05:00
d8471d6526 Merge pull request #36 from sdarwin/drone
Drone config
2021-01-13 12:42:59 -05:00
bee33b0117 add drone config [ci skip] 2021-01-13 17:09:26 +00:00
b49e14231f Merge branch 'develop' 2020-12-29 16:26:32 -05:00
5289c50299 Update meta information 2020-12-28 10:15:43 -05:00
5e17804af2 Merge branch 'develop' 2020-10-25 06:16:15 -04:00
15dcb92ebf Revert "Chyange number of jobs to use $nproc"
This reverts commit 112673238a.
2020-10-25 06:15:04 -04:00
ae5e475169 Merge branch 'develop' 2020-10-24 20:35:07 -04:00
112673238a Chyange number of jobs to use $nproc 2020-10-24 20:33:54 -04:00
bff73def85 Remove preprocessor limits CI testing 2020-09-25 12:47:54 -04:00
5e2770334d Address model for msvc-10 and msvc-11 must be only 32-bit in appveyor.yml 2020-09-25 11:18:29 -04:00
e4186a6df1 Updated appveyor tests 2020-09-22 19:33:56 -04:00
4a274cbe86 Corrected msvc-14.0 setup 2020-09-22 13:24:12 -04:00
7bed5072e4 Update on config.hpp so we are not redefining a defined macro. 2020-09-22 00:30:33 -04:00
b3f95b899f More individual travis ci preprocessor limits tests. 2020-09-21 18:39:06 -04:00
8f937e431e More individual appveyor preprocessor limits tests. 2020-09-20 17:26:49 -04:00
879e876d45 Add address-model for limits build in Travis CI 2020-09-20 06:15:41 -04:00
1a2e813fcb Corrected Travis CI syntax 2020-09-20 05:38:29 -04:00
5a30bc472d Updated Appveyor setup. 2020-09-20 00:52:01 -04:00
d12d2d9a3a Updated .yml files 2020-09-19 23:02:30 -04:00
2ab48feed5 Corrected syntax 2020-09-19 19:46:58 -04:00
6ec9072f27 Update yml to handle Boost Build bug with explicit alias when not invoking b2 from the test directory. 2020-09-19 17:46:22 -04:00
cac5e3e2ef Rearrangement of links and better explanation of variadic macro support. 2020-09-19 09:14:26 -04:00
4b1d674a17 Updated title page specifying assumption of variadic macro support. 2020-09-19 07:59:43 -04:00
9fcd0a289a Upgrade docs to say that variadic macros must be supported by the compiler. 2020-09-19 02:24:44 -04:00
5fd12d32d4 Assume variadic macro support. 2020-09-17 18:25:36 -04:00
8288ce7575 Updated limitations docs. 2020-09-14 18:26:49 -04:00
ae836b12e4 Updated appveyor which protects b2 parameter by putting it within quote marks. 2020-09-14 15:43:10 -04:00
fe22f14954 Fixed check by not omitting the 0 check. 2020-09-04 17:38:08 -04:00
322e4266fb Reinstalled Intel on Windows fix fgor 17.0 on up. 2020-09-02 04:14:49 -04:00
f74e04f827 Fixed tests for non-strict compilers. 2020-09-02 01:37:00 -04:00
1ace1d3806 Fixed syntax error of a missing #endif 2020-09-01 21:08:13 -04:00
ed066d3c81 Further separation to strict and non-strict implementations in variadic implementations. 2020-09-01 19:31:41 -04:00
96e994a25a Further separation to strict and non-strict implementations in tuple implementations. 2020-09-01 19:19:23 -04:00
ac553f44fb Further separation to strict and non-strict implementations in seq implementations. 2020-09-01 16:03:28 -04:00
b93e99332b Further separation to strict and non-strict implementations in logical and repetition implementations. 2020-09-01 08:30:03 -04:00
001d109eab Further separation to strict and non-strict implementations in list implementations. 2020-09-01 02:50:29 -04:00
fedfdc2f32 Further separation to strict and non-strict implementations. 2020-09-01 00:35:19 -04:00
775f9eb24e Further separation to strict and non-strict implementations. 2020-08-31 21:08:44 -04:00
9b8138324f Changed separation to strict and non-strict implementations and include only the header files needed by either. 2020-08-31 16:51:00 -04:00
158fc13f01 Changed separation to strict and non-strict implementations and include only the header files needed by either. 2020-08-31 16:38:03 -04:00
721ef44e79 Revert arithmetic changes to original for msvc default preprocessor. 2020-08-31 10:55:17 -04:00
c1eb9292d7 Removed BOOST_PP_CAT workaround for Intel compiler on Windows for version 18.0 and above, as it was causing a failure in preprocessor tests. 2020-08-30 15:07:31 -04:00
d49db1ef09 Testing preprocessor limits in CI 2020-08-28 14:37:49 -04:00
92ac085edf Updated for new VC++ preprocessor, explicit tests, address model, and cxxstd. 2020-08-28 01:00:37 -04:00
fe67cda385 Create explicit tests for the limitation tests. 2020-08-28 00:59:47 -04:00
a1303d0763 Fixed erroneous extra #endif 2020-08-27 01:35:33 -04:00
5c83504677 Merge branch 'develop' into expand_number
# Conflicts:
#	include/boost/preprocessor/variadic/size.hpp
#	test/seq.cxx
#	test/variadic.cxx
2020-08-27 00:46:34 -04:00
b0a0bb281c Reinstituted a test. 2020-08-26 21:51:08 -04:00
661aa5c36e Cleanmer variadic size implementation. 2020-08-26 21:49:21 -04:00
a9ed92efbd Updates for empty variadic data. 2020-08-26 17:47:07 -04:00
f977ee0cd9 Updated the docs for limitations. 2020-08-23 20:12:06 -04:00
5d70c1fc7b Corrected limit. Added BOOST_PP_IS_STANDARD macro. Updated variadic tests. 2020-08-23 20:08:38 -04:00
1cf82f9928 Separate variadic and tuple limits so that variadic limits can be greater. 2020-08-17 21:22:13 -04:00
59cdb3e5db Updated limits and corrected deduce_r. 2020-08-16 11:20:25 -04:00
2c20e742a1 Merge branch 'develop' into master 2020-08-14 19:42:33 -04:00
4afae94309 Updated tests for clang 2020-08-14 19:38:55 -04:00
44a4e07994 Fix non-variadic tuple elem access. 2020-08-13 01:38:33 -04:00
3f43be5b55 Limited fold_left invocations. 2020-08-12 12:32:57 -04:00
d86d461aa7 Corrected seq's fold_left. 2020-08-11 22:13:23 -04:00
45565b6dc3 Updated tests for VC++ deficiencies. 2020-08-11 10:26:13 -04:00
1fe79acc20 Updated list tests 2020-08-10 21:11:57 -04:00
ff9d451901 Added selection tests. 2020-08-09 11:09:50 -04:00
e7b1f71c7e Updated tests and doc fix. 2020-08-08 11:30:37 -04:00
e44c47c9c3 Merge pull request #32 from jwakely/develop
Fix invalid XHTML document
2020-08-05 09:33:41 -04:00
0e1a2fecb1 Fix invalid XHTML document 2020-08-05 10:40:01 +01:00
c5fe11a649 Updated comparisons for 1024 maximum. 2020-08-01 17:57:02 -04:00
ee0c4135c3 Updated arithmetic tests for 1024 max. 2020-07-31 23:41:43 -04:00
2fb4b3de1b Iteration limit to 1024. 2020-07-28 20:36:00 -04:00
585fad5198 Fix dec limits. Allow 1024 in number and seq limits. 2020-07-28 01:39:40 -04:00
21f796567e Add 1024 limit for all related number functionality 2020-07-27 20:59:29 -04:00
905520aaf8 Added 1024 as maximum number 2020-07-27 07:54:05 -04:00
ea15d11d2f Updated iteration tests for 512 maximum 2020-07-25 12:43:39 -04:00
42a283d112 Repetition tests when exceeding the 256 minimum number of repetitions 2020-07-19 17:30:40 -04:00
aba61d6018 Rename to all lower case. 2020-07-14 17:52:41 -04:00
572f3f4d4a Fixed syntax error. 2020-07-14 17:39:48 -04:00
6272649c8f Allow macro to be passed only tuple, without the tuple size, when variadics are used. 2020-07-14 17:34:17 -04:00
efe8cb6242 Updated list tests 2020-07-12 19:06:21 -04:00
a03dd0419e Fix syntax error 2020-07-12 19:05:57 -04:00
9ba4469131 Fixed size implementation. 2020-07-11 13:51:08 -04:00
7e3516eb8f Revert "Revert to original size implementation now that 'while' has been expanded by one iteration."
This reverts commit 7e30c606b7.
2020-07-11 13:46:35 -04:00
7e30c606b7 Revert to original size implementation now that 'while' has been expanded by one iteration. 2020-07-11 11:05:21 -04:00
28a0c21651 Maximum for loop 2020-07-11 05:04:00 -04:00
0fbfe9c981 Increased while loops by one to encompass maximum numbers. 2020-07-10 23:06:27 -04:00
c8e005f696 Corrected fold_left to allow for maximum tests. 2020-07-10 12:19:38 -04:00
74f652c85f Updated size. 2020-07-08 22:04:07 -04:00
b9424eac02 Revert back to original reverse implementation 2020-07-07 20:23:58 -04:00
f10c669bab Add more large list tests 2020-07-07 19:13:37 -04:00
0fd6b84304 Add extra iteration for fold_left and fold_right to cover maximum operations. 2020-07-07 19:13:05 -04:00
db21240060 Split reverse for seq seize greater than 256 2020-07-05 13:13:06 -04:00
14a263bf9d Updated to not do duplicate dec 2020-07-05 10:57:18 -04:00
5c7ae49828 Updated doc doe BOOST_PP_OVERLOAD. 2020-07-03 14:18:44 -04:00
bb9d4273d4 Updated seq tests 2020-07-02 18:39:04 -04:00
110ddaca75 Updated tests. 2020-07-02 15:07:17 -04:00
5e74d9f12e Added config.hpp back. 2020-07-02 12:13:22 -04:00
1b5c17f75b Updated header includes 2020-07-02 11:36:36 -04:00
15d0d66a75 Updated limit implementation. 2020-07-02 11:24:15 -04:00
e231fe7ad9 Updated docs for the the fact that in C++20 mode when __VA_OPT__ is supported variadic data passed some of the variadic macros can be empty. 2020-06-30 14:50:47 -04:00
a037024cec Updated Travis CI clang 9 and 10 configurations 2020-06-30 13:32:30 -04:00
57c160f921 Updated travis CI tests 2020-06-30 10:55:50 -04:00
3ac4c915a3 In C++20 variadic data can be empty. This means that BOOST_PP_VARIADIC_SIZE now returns 0 for empty data instead of 1, and that conversions to and from empty variadic data and lists or arrays, which can be empty, work properly. 2020-06-29 21:57:23 -04:00
47b430e3d5 Updated limits need undefs. Break reverse into two eequal parts. Updated seq tests. 2020-06-28 12:52:41 -04:00
59048974ba When the tuple limit is not 256, use previous implementation 2020-06-13 13:19:21 -04:00
62da4cc84b Updated tests. 2020-06-13 04:01:22 -04:00
b72dcd7958 Fixed array functionality for large arrays. 2020-06-11 20:44:39 -04:00
cf34b5c21b Simplified functionality 2020-06-11 08:23:22 -04:00
1347313cae Added copyright 2020-06-11 08:22:46 -04:00
31704b522a Added copyrights 2020-06-11 08:22:00 -04:00
f16f7721b5 Corrected syntax errors 2020-06-11 08:20:53 -04:00
43f02f9405 Simplified multiplication 2020-06-10 11:05:43 -04:00
e8bbb16f57 Use detail check for number 1 rather than empty implementation. 2020-06-10 10:44:35 -04:00
25aaea0136 Updated arithmetic. 2020-06-10 09:59:30 -04:00
13c9669410 Updated arithmetic implementations to deal with corner cases whichy run out of WHILE loops. 2020-06-09 20:54:12 -04:00
d41d1dda97 Updated multiplication and subtraction to check for maximum/minimum numbers. 2020-06-07 15:49:53 -04:00
c07bb185c1 Updated BOOST_PP_ADD implementation checking for the maximum number. 2020-06-07 05:36:32 -04:00
43caf4d41e Added macros for testing miniumum (0) andf maximum numbers. 2020-06-06 16:12:56 -04:00
a6c5cd5bcf Update test and jamfile 2020-06-04 21:52:46 -04:00
05b3defe2f Update arithmetic tests 2020-05-29 21:35:40 -04:00
d49211a963 Only allow limits to be used by strictly conforming compilers. 2020-05-29 21:35:08 -04:00
7541c351ce Update variadics test. 2020-05-29 13:12:53 -04:00
b68a2409ad Fix syntax errors. 2020-05-29 13:11:46 -04:00
0999dfe1d5 Update default list size from 255 to 256. 2020-05-29 13:11:04 -04:00
a7560df684 Adding limits for repetition and seq. 2020-05-19 15:35:54 -04:00
efa576203b Testing of numbers up to 512 2020-05-09 17:03:48 -04:00
fd3b57b15a Added arithmetic testing for numbers up to 512. Corrected seq macro which does not expect a number above 256. 2020-05-04 18:44:20 -04:00
c859da1fc9 Fixed some syntax errors and updated a test to asccount for numbers being more than 256. 2020-05-04 00:34:09 -04:00
efea46b2fb Allow iteration limits to be configured 2020-05-03 22:31:58 -04:00
b95d91ee71 Use a separate BOOST_PP_LIMIT_VARIADIC for variadic elements 2020-05-03 14:35:41 -04:00
9bf0043260 Updates for tuple elements of more than 64 elements 2020-05-02 21:59:30 -04:00
533d636ece Implement tuple limits for TUPLE functionality. Add updated copyright for changed files. 2020-05-01 14:38:32 -04:00
0dcaaac66f Changed directory structure so that all limits implementations are in their own relative "limits" subdirectory. 2020-04-30 10:24:33 -04:00
3b6102cd03 Added ability to change the number of tuple elements. A number of small fixes. 2020-04-30 09:06:06 -04:00
82addd1b28 Support for expanded numbers up to 512, as well as expanded while iterationms up to 512. 2020-04-29 06:38:10 -04:00
ffb26db146 Not going to test msvc-9,0 anymore. It is just too old and I can not test it locally. 2020-04-26 09:38:05 -04:00
e4fb5f4866 Merge branch 'develop' 2020-03-01 00:18:20 -05:00
9cf66925d4 Latest Borland with clang can support variadic macros. Updated iso test to be more correct choosing compiler level. 2020-02-18 02:44:51 -05:00
e4ce0f06f5 Merge branch 'develop' 2020-02-01 23:12:13 -05:00
98f6c75e1e Make the quick.cpp test 'explicit'. 2020-01-06 02:34:42 -05:00
f99ed9921a Merge pull request #28 from boostorg/feature/add-cmake-tests
Add CMake install support, tests
2020-01-05 20:20:29 -05:00
a378d239da Disable the Appveyor cmake_test configuration on 2015/2017 as it's too slow; only bootstrap b2 in the boost_build_test configuration 2020-01-05 07:19:59 +02:00
0332a793f5 Fix Appveyor branch handling 2020-01-05 06:48:21 +02:00
6c350c6fc3 Update appveyor.yml 2020-01-05 06:46:08 +02:00
728c71ba75 Enable C in test/CMakeLists.txt; add int main() {} to quick.cpp 2020-01-05 05:07:08 +02:00
1ab9385a91 Add CMake install support, tests 2020-01-05 04:32:16 +02:00
688c3f2ee6 Turn off variadic macro support by default for nvcc only when compiling CUDA files. 2019-12-14 13:20:45 -05:00
bd0db5ce8b Changed __CUDACC__ to __NVCC__ as other compilers do define __CUDACC__ when compiling CUDA files. 2019-12-14 12:45:02 -05:00
da60e76913 Added 'explicit' for test_iso. 2019-11-13 20:45:02 -05:00
661dd91603 Added explicit test with the alias 'test_iso' to run tests for macro expansion for the various C++ standards. 2019-11-13 20:38:10 -05:00
ffb27a1d56 Merge branch 'develop' 2019-11-12 15:01:45 -05:00
a6404a8fb2 Fixed __VA_OPT__ functionality for vc++ in c20 mode. 2019-11-12 14:57:09 -05:00
732d00341f For the default VC++ preprocessor turn off __VA_OPT__ support in true c20 mode ( /Zc:__cplusplus ) as it can not handle it. 2019-11-12 10:31:24 -05:00
e7256313c4 Merge branch 'develop' 2019-11-03 23:32:49 -05:00
b3036f1a63 Expanded emptiness explanation with the addition of the BOOST_PP_VA_OPT macro. 2019-11-02 23:58:29 -04:00
de49676452 Added docs for the BOOST_PP_VA_OPT macro. 2019-11-02 18:59:55 -04:00
4f4f04c56b Added va_opt.hpp to facilities header file. 2019-11-01 15:51:34 -04:00
c5e90f23b7 Updated check_empty variadic macro notation. 2019-11-01 15:34:08 -04:00
776037ae56 Corrected implementation and testing for BOOST_PP_VA_OPT 2019-10-31 06:07:10 -04:00
a9827c8fc8 Updated docs __VA_OPT__ support. 2019-10-30 14:32:45 -04:00
6db241a78d Merge remote-tracking branch 'remotes/origin/develop' 2019-10-20 17:03:23 -04:00
4fe7807f79 Add BOOST_PP_VA_OPT implementation 2019-10-20 17:00:51 -04:00
80107ea60a Changed opt to has_opt in header file and HTML 2019-10-19 10:51:40 -04:00
1473215dc7 Changed name of macro from BOOST_PP_VARIADIC_OPT to BOOST_PP_VARIADIC_HAS_OPT 2019-10-19 05:49:13 -04:00
291f92696d Merge branch 'develop' 2019-10-09 12:48:38 -04:00
771edacbff Completed the emptiness topic. 2019-10-08 15:50:08 -04:00
ac99242b71 Add a topic on "emptiness" 2019-10-08 09:43:18 -04:00
bda6ad9148 Updated docs 2019-10-06 22:20:19 -04:00
88a0365f4d Added the BOOST_PP_CHECK_EMPTY macro and documentation. 2019-10-06 22:06:38 -04:00
6af29d8b77 Merge branch 'develop' 2019-10-04 22:51:14 -04:00
af70b2872e Updated for compiling a CUDA file with clang. 2019-10-02 18:52:09 -04:00
b7b1425c7f Remove duplicate printing of a macro in this test. 2019-09-28 11:25:09 -04:00
54669af127 Fixed macro testing for __VA_OPT__ support. 2019-09-27 22:15:18 -04:00
e439b2555e Updated name and parameters for clang cuda test. 2019-09-27 13:44:19 -04:00
4cce94a84e Segregate C20 macros code from other macros for BOOST_PP_IS_EMPTY 2019-09-27 09:44:15 -04:00
2f9be1086a Less wasteful inclusion. 2019-09-26 16:07:03 -04:00
684e9991ec Only include macro if allowable. 2019-09-26 15:05:17 -04:00
a42f374b97 Updated example for using the BOOST_PP_VARIADIC_OPT macro. 2019-09-26 01:19:31 -04:00
0cdd09e6e1 Change to a less wasteful use of BOOST_PP_VARIADIC_OPT in BOOST_PP_IS_EMPTY code. 2019-09-26 00:43:46 -04:00
22deb165b6 Documentation for variadic opt functionality. 2019-09-25 15:43:07 -04:00
e476f10f52 Added OPT macro to determine whether C++20's __VA_OPT__ is supported or not. Updated the undocumented variadic IS_EMPTY to use the functionality of __VA_OPT__ if it exists to provide perfect functionality for testing for emptiness. 2019-09-25 06:29:04 -04:00
c436de6142 Adjusted the configuration so that compiling a cuda source file ( .cu ) using clang does not set BOOST_PP_VARIADICS to 0. An 'explicit' test was also added for this situation. 2019-09-14 10:27:14 -04:00
5756fb08ad Fixed inspect report problems: tabs and lack of copyright notices, and a few other small html file errors. 2019-08-27 01:29:21 -04:00
9b3e6a2cd6 Updated for b2 cmake support. 2018-12-19 22:09:23 -05:00
d135cad759 Merge branch 'develop' 2018-10-25 19:41:15 -04:00
8d26689387 Merge branch 'develop' of https://github.com/boostorg/preprocessor into develop 2018-10-25 16:58:28 -04:00
f78f0a1d25 Removing any forcing of C++ levels. 2018-10-25 16:57:55 -04:00
87fd89a7db Merge pull request #20 from Mike-Devel/min_cmake
[CMake] Generate cmake target that other libraries can use
2018-10-23 09:49:20 -04:00
adf2746626 Add support for vc++ /experimental:preprocessor mode. 2018-10-20 14:02:20 -04:00
fe70754559 Include wchar.h in order to test wide character stringize under C. 2018-10-19 16:57:17 -04:00
45588469f3 Only test wide character stringize in c++. 2018-10-19 16:41:43 -04:00
344ce6abf9 [CMake/CI] Use config_info.cpp for cmake self test 2018-10-17 12:13:45 +02:00
31653b34c9 [CMake/CI] Some cleanup 2018-10-17 12:12:57 +02:00
a4e304ca87 [CMake/CI] Add cmake self test to appveyor 2018-10-17 11:33:21 +02:00
0e335df79e Test for stringize macro and use of variadic in stringize macro. 2018-10-16 16:37:10 -04:00
ee5ed2510d [CMake] Add self-test for cmake file to travis 2018-10-16 19:58:45 +02:00
dd44e1eea5 [CMake] Add minimal cmake file
Generate cmake target that can be used by other libraries
to express their dependency on this library and retrieve
any configuration information such as the include directory.
2018-10-09 14:52:17 +02:00
b5c081bf7a Variadic macro support for the PGI compiler when EDG is being used with it. 2018-09-23 09:12:59 -04:00
347f48afae Back out previous CUDA change to turn on variadic macro support for all situations when compiling a CUDA file. 2018-09-10 17:42:32 -04:00
49a72ac4f2 Corrected sentence by removing extra "the". 2018-08-23 19:20:04 -04:00
56090c56b5 Merge branch 'develop' 2018-02-20 09:13:57 -05:00
00b2f44624 Allow the IBM compiler to default to the level of C++/C compliance to determine default variadic macro support 2018-02-18 09:47:44 -05:00
a329a67b47 NVidia compiler supports variadic macros. 2018-02-14 22:01:04 -05:00
34af3a925c Merge pull request #11 from danieljames/feature/fix-links
Fix some links
2018-01-11 13:02:34 -05:00
ad22f9686e Fix some links 2018-01-11 14:20:16 +00:00
39175c471f Merge branch 'develop' 2017-10-30 11:32:10 -04:00
aa9ee3ae3f Removed --depth 1 2017-10-29 21:31:25 -04:00
50ffeeee8b Merge branch 'develop' 2017-10-27 22:31:37 -04:00
f54e270433 Better appveyor designation for tests. 2017-10-09 11:58:08 -04:00
08ec2abb2e Updated appveyor file for correct toolsets. 2017-10-09 11:39:03 -04:00
c4b1ce10bd Add VS2017 worker image. 2017-10-09 11:23:30 -04:00
1ecc2e2ec9 Added Appveyor file. 2017-10-09 08:09:05 -04:00
b19e4deacb Merge branch 'develop' 2017-04-24 12:13:09 -04:00
dfc1c46ece With _MSC_VER and __clang__ always use strict mode and variadics turned on without any VC++ fixes. 2017-03-26 08:51:41 -07:00
e474eea44f Slight correction to particularize previous change as involving only -fno-ms-compatibility mode. 2017-03-26 01:02:05 -07:00
b03c6cd3c0 In the configuration the combination of clang defined and gcc defined always gets strict mode and variadic macro support, even under Windows where VC++ may also be defined. 2017-03-25 23:22:32 -07:00
a6275942f3 Merge branch 'develop' 2017-02-19 03:21:26 -05:00
d8389ffda6 Exclude tests for gcc when C++0x is not supported. This should fix some test matrices for old versions of gcc. 2017-01-05 09:57:01 -05:00
075a3a02c8 Merge branch 'develop' 2017-01-04 11:29:41 -05:00
dc41624aba Added Travis CI file. Updated config.hpp for Intel 17 on Windows. 2016-11-16 13:01:51 -05:00
4ae346bbc5 Merge pull request #9 from sergiud/intel-17.0-fix
Intel C++ compiler 17.0 fix
2016-11-16 09:40:21 -05:00
d922d757be Fix for VC++ and VC++ emuolations ot the SEQ_TO_LIST macro 2016-11-16 00:15:57 -05:00
eb143c10f8 Added configuration info test. 2016-11-14 00:25:46 -05:00
e1e3a2e21e added Intel C++ compiler 17.0 workaround 2016-11-11 15:30:21 +01:00
c2beb74b90 Updated for VC++ quirks and overload code example. 2016-04-14 08:52:06 -04:00
e70abe7b49 Updated for VC++ quirks and overload code example. 2016-04-11 14:24:38 -04:00
ee73989a21 Further change to ensure that clang targeting VC++ behaves as the VC++ preprocessor 2016-03-30 13:52:02 -04:00
7835ed019c Updated configuration to support clang targeting VC++ 2016-03-30 12:08:46 -04:00
3292532517 Merge branch 'master' into develop 2015-10-16 18:47:02 -04:00
4e29a160b9 Merge branch 'develop' 2015-10-14 22:36:27 -04:00
b1be22cf77 Merge pull request #8 from mgaunard/patch-1
lower version requirement for SunCC and variadics
2015-10-08 11:34:04 -04:00
f59d83b8bf lower version requirement for SunCC and variadics
Macro variadics appear to work fine with SunCC 5.12.
2015-10-08 11:31:27 +01:00
88c4282493 Fixed leaving off first letter of word in doc. 2015-09-21 10:53:10 -07:00
02ab183b96 Added documentation for identity_n macro. 2015-09-13 13:21:57 -04:00
735e301c46 Added BOOST_PP_IDENTITY_N functionality with test. 2015-09-12 19:53:59 -04:00
e983c16e61 Merge branch 'develop' 2015-08-27 21:21:19 -04:00
132eb67cec Remove spaces in the filename for AppendixA. 2015-08-21 16:38:12 -04:00
4c39e92496 Merge branch 'develop' 2015-08-21 09:28:34 -04:00
2689b91d91 Merge pull request #6 from teeks99/unicode_name2
Removed weird unicode character from filename and links
2015-08-17 13:27:17 -04:00
478bb6e10e Removed weird unicode character from filename and links 2015-08-14 17:39:42 -05:00
3c3c7b42d9 Corrected implementation same as 'develop' and updated test sames as 'develop'. 2015-07-17 07:45:08 -04:00
3f97464c27 Added needed include. 2015-07-17 07:16:11 -04:00
d4fbb8fda2 Back out change from 'develop' because of failing MPL test. 2015-07-16 19:52:49 -04:00
38e7f69054 Merge branch 'develop' 2015-07-16 18:16:24 -04:00
3ed3cd689e Added more thorough tests for large seqs 2015-05-30 08:00:33 -04:00
fc6229660e Added not about VC++ compiler limitation 2015-05-29 22:53:01 -04:00
b125850bbb Fixes for BOOST_PP_SEQ_REMOVE when the seq is its maximum size and has its last element removed. Also updated seq tests. 2015-05-29 01:36:06 -04:00
350c0e59b1 Add ned macro 2015-05-27 19:15:45 -04:00
2612bf706c Corrected fix for the for_each problem when dealing with as much as 256 seq elements. 2015-05-27 19:13:22 -04:00
b84235fcb7 Revert "Corrected fix for seq for each processing."
This reverts commit dc61cc1373.
2015-05-27 07:44:30 -04:00
4aa8ae8a01 Disallow variadic macro support for versions below 12.4, since that is the first version with C++11 support. 2015-05-26 17:39:58 -04:00
9044b17f18 For Oracle C++ do not automatically turn off variadic macro support for version 12.3 or higher, since those versions can support C++11. 2015-05-25 23:46:33 -04:00
106f5a43a1 Added local copy of preprocessor introduction from the C++ Template Metaprogramming Book Appendix A 2015-05-20 17:19:31 -04:00
915ab7834c Add local copy of preprocessing tutorail 2015-05-20 16:48:23 -04:00
dc61cc1373 Corrected fix for seq for each processing. 2015-05-19 20:10:39 -04:00
4c2c83f9f2 Backing out for_each and for_each_i changes. 2015-05-19 11:34:02 -04:00
862f64c45c Updated documentation about undefined behavior. 2015-05-18 17:02:48 -04:00
06c18a67f8 Fixed replace when replacing the last element of a 256 element sequence. 2015-05-18 16:36:06 -04:00
eb2a675b8f Added #undef to quell VC++ warnings about macro be redefined. 2015-05-18 10:51:50 -04:00
b12333b419 Fixed problem when repetitions go past 256 and the 257th loop op returns that the repetitions are finished. 2015-05-18 02:14:35 -04:00
1543b5fbf7 Remove need to add extra nil element 2015-05-17 14:54:39 -04:00
86378d648e Removed need to add extra seq element. 2015-05-17 13:30:03 -04:00
633f1e679a Added information about empty data. 2015-05-17 00:46:10 -04:00
4360660e39 Add wstringize.hpp to library header 2015-05-16 23:58:39 -04:00
827ff0905c Cleaner use of preprocessor defines to quell warnings. 2015-05-16 23:44:06 -04:00
9cb039ab8b Merge branch 'develop' 2015-03-28 04:19:20 -04:00
1b3fe1570b Put BOOST_PP_EXPAND in correct place for VC++ 2015-02-02 21:19:50 -05:00
4f0adfb553 Reveert removal of BOOST_PP_EXPAND 2015-02-02 18:04:58 -05:00
01848af60d Merge branch 'vctuple' into develop 2015-01-30 23:16:08 -05:00
dc54fee21c Remove BOOST_PP_EXPAND usage since it is no needed 2015-01-30 23:11:07 -05:00
77a9177c31 Remove extraneous include 2015-01-30 22:15:54 -05:00
f1165249fb Merge branch 'develop' 2015-01-15 15:20:38 -05:00
fd135a078f Added BOOST_PP_LIST_SIZE_D to list of re-entrant macros. 2014-12-09 13:21:49 -05:00
eedd7378f1 Added EQUAL and NOT_EQUAL to re-entrancy list. 2014-12-07 16:04:57 -05:00
e1ade3ea3b Changed explanation of which value should be greater for maximum efficiency. 2014-12-05 00:16:11 -05:00
3760758d4e When the Intellisense compiler is being used wihin the Visual Studio IDE, both __EDG__ and __INTELLISENSE__ are defined along with the usual VC++ predefines. This change adjusts the Boost PP configuration to take into account that situation. 2014-11-09 14:20:03 -05:00
0baf10bfc6 Updated docs to refer to config.hpp rather than variadics.hpp. 2014-11-07 16:35:36 -05:00
e72b298001 Merge branch 'develop' 2014-10-12 18:29:09 -04:00
f77c8f2c85 When using clang variadic macro support is now dependent on the C or C++ version system, and not automatically turned on in all situations. This reduces clang warnings. 2014-08-19 00:32:35 -04:00
9c2ef3ae46 Merge pull request #3 from danieljames/metadata
Create metadata file.
2014-08-18 11:36:36 -04:00
1a40a5ea30 Add metadata file. 2014-08-18 15:09:06 +01:00
15f75eca35 Updated test for "empty" tuple and arrays. 2014-07-21 08:38:07 -04:00
8924ad016f Additional tests for "empty" tuples. 2014-07-20 17:40:34 -04:00
9c478f0c39 Special processing when "empty" single element . 2014-07-20 17:40:02 -04:00
cee3323340 Corrected link. 2014-07-16 19:30:51 -04:00
503175a63e Added copyright and base link back to original macro. 2014-07-03 21:17:20 -04:00
46ff3eb1f4 Correct line endings. 2014-07-03 21:15:56 -04:00
04634b402b Added topics for showing lists of macros which re-enter FOR, REPEAT, and WHILE. 2014-07-03 21:10:26 -04:00
83f05f5325 Add links tio topics for re-entrancies. 2014-07-03 21:02:11 -04:00
00d05d4f04 Added links to topics with macros which use re-entrancy versions. 2014-07-03 20:55:39 -04:00
542bd2653d Use expand to fix VC++ problem. 2014-07-03 16:59:52 -04:00
fd36e236bc get_data not needed. 2014-07-03 16:59:39 -04:00
c4bf80ee1d Cleaner inclusion if is_single_return functionality. 2014-07-03 16:59:30 -04:00
2cea910cd8 Simplify get_data. 2014-07-03 16:59:15 -04:00
4fc958a89d Remove special processing for REM_CTOR wsing VC++. 2014-07-03 16:59:05 -04:00
08c50b219d Added documentation for is_begin_parens and remove_parens. 2014-07-03 16:58:01 -04:00
3a472c2084 Updated docs 2014-07-03 16:56:40 -04:00
4063b1564b Updated doc for empty array and/or list when converted to other data type. 2014-07-03 16:51:28 -04:00
b70598c357 Using BOOST_PP_IDENTITY makes code clearer. 2014-07-03 16:51:17 -04:00
56525c76cc Change back to original implementation. 2014-07-03 16:50:56 -04:00
8ac31eb612 Changed BOOST_PP_EMPTY to only use the variadic version when not VC++. Corrected others to use local version of EMPTY. 2014-07-03 16:50:44 -04:00
f61bb8a80f Changed functionality so empty arrays/lists when converted to a seq or a tuple expand to nothing. 2014-07-03 16:46:20 -04:00
df165d9fc6 Added further tests for empty lists and arrays. 2014-07-03 16:46:07 -04:00
fb732aaab5 Fixes for empty conversions and tests for empty conversions. 2014-07-03 16:45:55 -04:00
9dfce3363c Added remove_parens and tests. 2014-07-03 16:45:22 -04:00
6590e41581 Further tests of changes involving empty data. 2014-07-03 16:45:10 -04:00
ec93b32f82 Corrected calculation _msc_ver number. 2014-07-03 16:44:56 -04:00
6c091d7f99 Removed tests which involve undefined behavior. 2014-07-03 16:44:39 -04:00
b3b9e80f86 Updated tests for strict compilers or VC++ 2014-07-03 16:44:27 -04:00
ea91a3defa Added variadic is_empty tests. 2014-07-03 16:44:13 -04:00
4ed6f6e07a Addition of is_empty tests and changes to rem processing as a workaround to VC++ problem. 2014-07-03 16:44:00 -04:00
2c7cf9410a Added variadic version of BOOST_PP_EMPTY and added new is_empty tests. 2014-07-03 16:43:40 -04:00
975c39b910 Added variadic is_empty and is_begin_parens along with tests. 2014-07-03 16:43:16 -04:00
f80bb83f3b Fixes for empty tuple processing 2014-07-03 16:42:26 -04:00
21ccb35814 Reapply typo fix. 2014-06-17 07:08:04 -04:00
6b0be3fe4f Revert "Merge branch 'master' into develop"
This reverts commit 1422fce0db, reversing
changes made to 9d2d1fffdf.
2014-06-16 23:58:35 -04:00
1422fce0db Merge branch 'master' into develop 2014-06-16 08:43:38 -04:00
9d2d1fffdf Revert use of variadic is_empty. 2014-06-16 07:01:15 -04:00
60691e3a49 Merge branch 'vcoverload' into develop 2014-06-08 10:21:02 -04:00
3f75659921 Added documentation for is_begin_parens and remove_parens. 2014-06-08 02:00:24 -04:00
b43a4708eb Correct line endings. 2014-06-04 19:38:09 -04:00
b923dadf19 Merge pull request #2 from coding-po/Bug_8454
#8454. Fixed minor typo in documentation.
2014-06-04 06:53:42 -04:00
e57370608e Updated doc for empty array and/or list when converted to other data type. 2014-06-04 06:50:33 -04:00
7da3c88d82 #8454. Fixed minor typo in documentation. 2014-05-26 16:55:07 -07:00
70e0f2d6e0 Using BOOST_PP_IDENTITY makes code clearer. 2014-05-26 16:36:30 -04:00
b03d46129c Change back to original implementation. 2014-05-25 07:53:44 -04:00
9d308c1b9d Changed BOOST_PP_EMPTY to only use the variadic version when not VC++. Corrected others to use local version of EMPTY. 2014-05-23 10:23:40 -04:00
1f16a481c7 Changed functionality so empty arrays/lists when converted to a seq or a tuple expand to nothing. 2014-05-05 20:49:20 -04:00
181a88db7e Added further tests for empty lists and arrays. 2014-05-04 23:55:53 -04:00
697ebcd840 Fixes for empty conversions and tests for empty conversions. 2014-05-04 03:07:00 -04:00
70e775452a Added remove_parens and tests. 2014-05-03 02:15:47 -04:00
dec4cfd273 Further tests of changes involving empty data. 2014-05-02 20:17:08 -04:00
7da9dbb7a9 Corrected calculation _msc_ver number. 2014-05-02 02:59:10 -04:00
5c22605c3d Removed tests which involve undefined behavior. 2014-05-01 23:21:05 -04:00
4614c62130 Updated tests for strict compilers or VC++ 2014-05-01 01:20:12 -04:00
fe2a9cbfcc Added variadic is_empty tests. 2014-04-30 16:15:57 -04:00
c66ea5871f Addition of is_empty tests and changes to rem processing as a workaround to VC++ problem. 2014-04-30 16:06:49 -04:00
6fe93a542d Added variadic version of BOOST_PP_EMPTY and added new is_empty tests. 2014-04-28 22:12:08 -04:00
d2bfda8308 Added variadic is_empty and is_begin_parens along with tests. 2014-04-28 19:24:42 -04:00
0a23b4d6a6 Fixes for empty tuple processing 2014-04-27 12:00:13 -04:00
81302d1e69 Merge branch 'develop' 2014-04-01 00:43:06 -04:00
91fb925e1c Correct line ending. 2014-02-27 22:43:23 -05:00
cc9fbc3734 Fix incorrect line ending. 2014-02-27 17:37:30 -05:00
a5ed4fe7d8 Added copyright and base link back to original macro. 2014-02-27 17:25:32 -05:00
042fb29bf1 Added links to topics with macros which use re-entrancy versions. 2014-02-27 17:06:00 -05:00
2b46c0f6bd Added topics for showing lists of macros which re-enter FOR, REPEAT, and WHILE. 2014-02-27 16:49:57 -05:00
7cb46e03ea Change from develop to master. 2014-02-26 09:40:58 -05:00
093216b300 Merge develop to master
Conflicts:
	doc/headers.html
	doc/headers/tuple.html
	doc/ref.html
	doc/topics/variadic_macros.html
2014-02-26 00:53:43 -05:00
b24e7a708d Create first merge point for Git on Master 2014-02-25 23:50:42 -05:00
6978c83372 Explanations about using tuples rather than arrays with variadic macro support. 2013-12-05 17:43:48 -05:00
58cf4ccba9 Updated title explanation about Boost PP usability. 2013-12-05 17:28:42 -05:00
d11b03ad1e Updated tests to cover more areas of the implementation. 2013-12-05 14:43:02 -05:00
b3cdac0ea2 Updated tests.
[SVN r86789]
2013-11-23 07:45:00 +00:00
b03b732a19 Updated documentation for tuples.
[SVN r86788]
2013-11-23 03:59:40 +00:00
e9bdfe5276 Corrected description.
[SVN r86783]
2013-11-22 04:00:54 +00:00
b8eb1e0149 Updated tuple docujmentation for new functionality.
[SVN r86782]
2013-11-22 03:38:17 +00:00
428b3c5103 The clang compiler now supports variadic macros by default.
[SVN r86780]
2013-11-21 18:57:41 +00:00
25dbb38e1e Updated tuple tests.
[SVN r86766]
2013-11-19 14:53:24 +00:00
8647354545 Updated tuple rem documentation.
[SVN r86761]
2013-11-19 04:31:38 +00:00
9d3203eb71 Fixes for VC++ and variadic size usage.
[SVN r86760]
2013-11-19 02:47:23 +00:00
e607287986 Updated array tests.
[SVN r86743]
2013-11-17 22:23:51 +00:00
b3a1643428 Fix to BOOST_PP_TUPLE_REM for VC++8.0 and note in documentation about it.
[SVN r86742]
2013-11-17 22:05:23 +00:00
8179a114c3 Added new tuple headers and updated tests to use a common test source file for each test.
[SVN r86715]
2013-11-15 23:54:12 +00:00
390d72525e Update to restore BOOST_PP_TUPLE_REM_0()
[SVN r86141]
2013-10-02 23:21:31 +00:00
5e0422ff97 Reinstate fix for clang so that it is recognized as strict compliance.
[SVN r86044]
2013-09-30 02:04:47 +00:00
06b1bf9b21 Revert previous change for clang.
[SVN r86011]
2013-09-29 19:21:46 +00:00
1cd181a946 Changed for clang on Windows which defines _MSC_VER.
[SVN r86004]
2013-09-29 15:16:25 +00:00
6f56be00ee Update to restore BOOST_PP_TUPLE_REM_0()
[SVN r85172]
2013-07-30 00:36:47 +00:00
d51297c62b Removed redundant explanation.
[SVN r83898]
2013-04-14 14:48:50 +00:00
e630b6e23f Updated documentation linking the (v) notation to a named anchor explaining it.
[SVN r83891]
2013-04-14 01:46:09 +00:00
b07cc69819 Updated documentation linking the (v) notation to a named anchor explaining it.
[SVN r83890]
2013-04-14 00:50:30 +00:00
b60a47252d added VARIADIC_SEQ_TO_SEQ
[SVN r80704]
2012-09-26 03:50:27 +00:00
c48da5375b pp-lib variadic changes merged to release branch
[SVN r75915]
2011-12-12 12:52:44 +00:00
7346503b96 Update link to the C++ Template Metaprogramming book Appendix A online.
[SVN r75126]
2011-10-27 02:10:02 +00:00
46caf30af4 Update link to the C++ Template Metaprogramming book Appendix A online.
[SVN r75125]
2011-10-27 02:03:36 +00:00
3443ca0a51 Delay of BOOST_PP_VARIADIC_ELEM fixes problem when variadic data must be generated.
[SVN r73776]
2011-08-15 15:58:25 +00:00
1149d38ef4 limited variadic support
[SVN r72763]
2011-06-26 13:07:20 +00:00
c81e77bb16 Merge [43112], [62165], [65119], and [65120] from the trunk.
[SVN r71037]
2011-04-06 17:22:43 +00:00
0c87b91f95 gcc fix
[SVN r70733]
2011-03-30 01:14:17 +00:00
49142ec930 commit test
[SVN r69130]
2011-02-21 22:51:57 +00:00
c776ac0002 Avoid evaluating BOOST_PP_SEQ_HEAD when it isn't needed. Fixes #4465.
[SVN r65120]
2010-08-30 02:26:02 +00:00
568f641d8e Remove unused #include. Refs #4465.
[SVN r65119]
2010-08-30 02:24:41 +00:00
9548743659 Fix some minor documentation errors. Fixes #4224
[SVN r62165]
2010-05-23 14:44:57 +00:00
0882fe63f9 rm cmake from trunk. I'm not entirely sure this is necessary to satisfy the inspect script, but I'm not taking any chances, and it is easy to put back
[SVN r56942]
2009-10-17 02:07:38 +00:00
d674ec9d6e rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
e582010b1f Copyrights on CMakeLists.txt to keep them from clogging up the inspect
reports.  This is essentially the same commit as r55095 on the release
branch.



[SVN r55159]
2009-07-26 00:49:56 +00:00
0decc801d5 Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
6cee861d4b merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
32f92a1431 merge tests and Jamfiles for 7 libraries
[SVN r50456]
2009-01-04 05:17:02 +00:00
328bd6f995 Updating dependency information for modularized libraries.
[SVN r49628]
2008-11-07 17:05:27 +00:00
8ed342548e Updating CMake files to latest trunk. Added dependency information for regression tests and a few new macros for internal use.
[SVN r49627]
2008-11-07 17:02:56 +00:00
c213502e2c Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
[SVN r49510]
2008-11-01 13:15:41 +00:00
485db8aef5 Move preprocessor tests into canonical test subdir structure.
[SVN r44385]
2008-04-13 23:21:57 +00:00
aba62cac02 Fix typo (bug #1434)
[SVN r43112]
2008-02-05 16:07:19 +00:00
4507d79106 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
80f57a0284 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
6a5b3283fc Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
f3461db9c7 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
0c28d39c7d EDG MS emulation
[SVN r37156]
2007-03-07 10:37:03 +00:00
fee02ed013 EDG MS emulation
[SVN r37155]
2007-03-07 10:27:38 +00:00
d88bf38702 removed single-line comment
[SVN r36257]
2006-12-04 00:43:44 +00:00
e8937f9f13 fixed flags argument bug
[SVN r36177]
2006-11-25 23:13:08 +00:00
3278d97b30 Fix freshly broken links, again.
[SVN r34764]
2006-07-28 16:06:08 +00:00
94ffea3b73 Fix freshly broken links, again.
[SVN r34764]
2006-07-28 16:06:08 +00:00
14bad4a4f9 (merge from head) Fix freshly broken links.
[SVN r34735]
2006-07-26 01:25:43 +00:00
eb1edeed0b Fix freshly broken links.
[SVN r34734]
2006-07-26 01:19:35 +00:00
d428afbfc0 (merge from head)
After asking Paul... add his copyright to the docs.


[SVN r34692]
2006-07-24 04:12:54 +00:00
36885cddae After asking Paul... add his copyright to the docs.
[SVN r34691]
2006-07-24 04:08:25 +00:00
b591d802c5 (merge from head)
Fix various inspection errors: add missing copyright and license info.


[SVN r34684]
2006-07-23 20:48:34 +00:00
b14b395cec Fix various inspection errors: add missing copyright and license info.
[SVN r34683]
2006-07-23 20:45:18 +00:00
0e2bbd51ce added x-refs
[SVN r33472]
2006-03-24 21:34:52 +00:00
9573b31cea This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
e6a44c77b9 alternate VC++ workaround
[SVN r33061]
2006-02-21 12:02:08 +00:00
5ce690af3b update for new Borland preprocessor
[SVN r32369]
2006-01-22 01:35:57 +00:00
546d5dc9a3 Changed the __SPIRIT_PP__ macro in the preprocessor lib config to __WAVE__.
[SVN r32367]
2006-01-21 15:07:39 +00:00
645026f596 Changed - to elif so the #endifs still match
[SVN r32257]
2006-01-08 05:27:52 +00:00
252e372ecb allowance for GCC-XML
[SVN r32255]
2006-01-08 00:11:41 +00:00
c9c95e1684 single element fix
[SVN r30808]
2005-09-05 07:58:27 +00:00
7c8bd6dec3 dedicated counter
[SVN r30562]
2005-08-12 20:42:15 +00:00
e55d8e83be bug fix
[SVN r30561]
2005-08-12 20:11:50 +00:00
3a15a4500f Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
a655d38e4b added shifted binary params
[SVN r30499]
2005-08-06 21:55:13 +00:00
8927845acd CW<9 workaround
[SVN r30184]
2005-07-19 20:47:19 +00:00
65496dd1d2 IBM workaround
[SVN r29731]
2005-06-22 11:02:32 +00:00
33af6f8d98 IBM workaround
[SVN r29718]
2005-06-21 07:55:15 +00:00
f5bc79f606 VC++ workaround
[SVN r26849]
2005-01-25 22:43:56 +00:00
3fc9130412 BSL update based on permissions granted in blanket-permission.txt
[SVN r25863]
2004-10-25 11:58:45 +00:00
e11d89cecd ..
[SVN r25856]
2004-10-24 23:52:55 +00:00
b71f390686 headers/xxx.hpp.html >> headers/xxx.html
[SVN r25656]
2004-10-11 06:58:45 +00:00
fcc60a3011 fixed 31+ filenames, unlinked files
[SVN r25057]
2004-09-13 16:45:27 +00:00
cb86812995 removed commented link
[SVN r25054]
2004-09-13 16:11:54 +00:00
d18009e308 Converted files to the BSL based on the permissions in more/blanket-permission.txt
[SVN r25052]
2004-09-13 15:51:29 +00:00
0b8615f1be tweak url
[SVN r24755]
2004-08-26 12:50:05 +00:00
fb183beac1 apply Digital Mars patch by Daniel James (http://article.gmane.org/gmane.comp.lib.boost.devel/107127)
[SVN r24219]
2004-08-01 07:24:26 +00:00
1812ca8e98 MSVC 6.5+STLPort workaround
[SVN r24218]
2004-08-01 06:27:56 +00:00
e599a58f10 Converted to Boost Software License, Version 1.0
[SVN r24096]
2004-07-27 03:43:34 +00:00
d8c979c633 *** empty log message ***
[SVN r23734]
2004-07-18 20:15:36 +00:00
28b2809d9c news -> introduction
[SVN r23563]
2004-07-14 22:37:27 +00:00
3a2b948fb3 Appendix A\!
[SVN r23561]
2004-07-14 22:18:42 +00:00
8b80898ad6 fixed redundant check
[SVN r23556]
2004-07-14 21:13:05 +00:00
a7f3bbaa59 fixed no-EMPTY usage
[SVN r23091]
2004-06-11 22:18:42 +00:00
34029cf0cb fixed usage bug
[SVN r22773]
2004-05-09 23:54:14 +00:00
d56c9b37a6 Fix broken links.
[SVN r21401]
2003-12-27 01:16:48 +00:00
6241d12f49 updated for Metrowerks' new pp
[SVN r21330]
2003-12-18 23:56:04 +00:00
9cc2279b2f tab removal
[SVN r21053]
2003-12-02 00:43:36 +00:00
85182b4426 evil VC bug fix
[SVN r18276]
2003-04-18 06:24:49 +00:00
7a652be8b4 fixed reversed results
[SVN r17875]
2003-03-13 06:51:21 +00:00
730cad9bcd Spirit PP!
[SVN r17692]
2003-03-01 19:43:05 +00:00
ce9576a096 doc fixes
[SVN r17466]
2003-02-17 04:19:02 +00:00
72ecbc58fa fix wrong dir name
[SVN r17136]
2003-01-31 21:26:53 +00:00
1f03280e44 oops, tabs...
[SVN r16768]
2003-01-06 01:20:30 +00:00
fbe6a2a52e predicate support for object-like config macros
[SVN r16767]
2003-01-06 01:07:12 +00:00
ad641c4b14 fixed copyright
[SVN r16763]
2003-01-05 18:59:40 +00:00
e2250a1f05 fixed right parenthesis
[SVN r16762]
2003-01-05 18:58:22 +00:00
0d0d7277d1 MWCC fix
[SVN r16730]
2003-01-02 06:29:35 +00:00
8927ac12fc MWCC fix
[SVN r16729]
2003-01-02 06:29:00 +00:00
1455a98541 add or update See www.boost.org comments
[SVN r16708]
2002-12-27 16:51:53 +00:00
9f3cf15ea8 encapsulated split
[SVN r16705]
2002-12-26 06:38:37 +00:00
90b4c400ce minor vc fix
[SVN r16704]
2002-12-26 06:37:43 +00:00
aa1a4b8185 hp update
[SVN r16703]
2002-12-26 05:52:20 +00:00
23b5e32ec6 minor vc fixes
[SVN r16702]
2002-12-26 05:44:41 +00:00
66ae128156 add missing include
[SVN r16301]
2002-11-17 07:42:57 +00:00
eb440203ae configuration bug fixed
[SVN r16178]
2002-11-09 18:19:06 +00:00
948dc37c77 fixed -1st- example
[SVN r16156]
2002-11-08 02:53:21 +00:00
632177847c fixed bibliography links
[SVN r16155]
2002-11-08 02:47:17 +00:00
8788b95b21 wide stringizing
[SVN r16154]
2002-11-08 02:44:38 +00:00
108875cb25 wide stringizing
[SVN r16153]
2002-11-08 02:27:19 +00:00
1c44a4a510 set -> seq
[SVN r16152]
2002-11-08 02:12:35 +00:00
91eba2f11b set -> seq
[SVN r16151]
2002-11-07 23:41:54 +00:00
5be4c6ee5a set -> seq
[SVN r16150]
2002-11-07 23:39:29 +00:00
54bdb38619 set -> seq
[SVN r16149]
2002-11-07 23:16:43 +00:00
4f3cfd2dbd set -> seq
[SVN r16148]
2002-11-07 23:08:07 +00:00
4321cbbb79 Fix test directory name
[SVN r16066]
2002-11-02 20:31:30 +00:00
1a45a2d833 Workarounds for Sun Workshop 7
[SVN r16037]
2002-11-01 02:45:24 +00:00
f9565520fd fixed hyperlink error
[SVN r15910]
2002-10-13 07:33:36 +00:00
d701bf8d47 preliminary set support
[SVN r15909]
2002-10-13 06:11:19 +00:00
33daabd87d preliminary set support
[SVN r15908]
2002-10-13 05:47:23 +00:00
b2bd498a4f extended array support
[SVN r15747]
2002-10-06 02:37:37 +00:00
3807daaf45 reinserted debugging support
[SVN r15746]
2002-10-06 02:31:47 +00:00
b7127aa718 extended array support
[SVN r15745]
2002-10-06 02:30:33 +00:00
33b4cfab1b replaced prefixes
[SVN r15744]
2002-10-05 22:01:01 +00:00
e53be8491f fixed url
[SVN r15739]
2002-10-05 19:22:55 +00:00
6e30689e5e lib cleanup
[SVN r15696]
2002-10-03 22:26:50 +00:00
4bb690a819 lib cleanup
[SVN r15693]
2002-10-03 22:13:37 +00:00
ae584c68b2 lib cleanup
[SVN r15689]
2002-10-03 22:04:13 +00:00
7856c3b759 new tests
[SVN r15688]
2002-10-03 21:55:27 +00:00
608163ebbe removed temporary docs
[SVN r15687]
2002-10-03 21:49:23 +00:00
3b93d471b1 inclusion fix
[SVN r15459]
2002-09-19 20:49:38 +00:00
e8cd3315e0 added trailing binary parameters
[SVN r15443]
2002-09-18 19:43:48 +00:00
77b2daeb56 config redirection for Visual Age on AIX
[SVN r15442]
2002-09-18 19:43:08 +00:00
b70d56a6b3 Fix misspelled __EDG_VERSION__ flag.
[SVN r15431]
2002-09-18 02:36:15 +00:00
72fab9d7da fixed everything-but-gcc bug
[SVN r15312]
2002-09-13 22:47:38 +00:00
228d4ce2d7 obsolete files
[SVN r15311]
2002-09-13 22:45:19 +00:00
ce9ad7208c explicit deduction
[SVN r15309]
2002-09-13 22:34:09 +00:00
145d9890ca increased depth for msvc
[SVN r15308]
2002-09-13 22:33:43 +00:00
256368661c flags fix
[SVN r15296]
2002-09-13 09:23:06 +00:00
15de7eec4b msvc depth issues
[SVN r15295]
2002-09-13 09:10:26 +00:00
fdc4155fea msvc arbitrary ICE fix
[SVN r15284]
2002-09-12 23:48:47 +00:00
a4efd4c21a revert
[SVN r15282]
2002-09-12 23:34:29 +00:00
715054b3b4 MSVC fix
[SVN r15281]
2002-09-12 23:08:13 +00:00
907aa0914d speedups
[SVN r15273]
2002-09-12 08:10:23 +00:00
859b360101 speedups
[SVN r15272]
2002-09-12 08:00:48 +00:00
0d9fa12aa6 Metrowerks speedup
[SVN r15248]
2002-09-10 02:12:19 +00:00
3facdc63f6 gcc fix
[SVN r15229]
2002-09-09 06:23:42 +00:00
5423acd697 fixed flags precedence
[SVN r15220]
2002-09-09 00:35:13 +00:00
fea5ddce84 fixed capitalization
[SVN r15219]
2002-09-08 23:43:43 +00:00
b6e1f95f62 compatibility jumper headers
[SVN r15217]
2002-09-08 23:11:02 +00:00
e94ef7422a borland fixes
[SVN r15215]
2002-09-08 22:06:46 +00:00
ded6f3a3c9 compatibility jumper headers
[SVN r15213]
2002-09-08 21:34:26 +00:00
faaa55709b workaround for insidious bcc bug
[SVN r15212]
2002-09-08 21:15:30 +00:00
393b019394 not supposed to be here!
[SVN r15211]
2002-09-08 21:15:12 +00:00
b7d529ac6b initial revision
[SVN r15207]
2002-09-08 11:01:16 +00:00
26e81a5585 initial revision
[SVN r15206]
2002-09-08 10:52:13 +00:00
c3b2cc2def bad name
[SVN r15205]
2002-09-08 10:51:48 +00:00
89e278e967 initial revision
[SVN r15204]
2002-09-08 10:37:14 +00:00
5c1b446a9e initial revision
[SVN r15203]
2002-09-08 10:22:48 +00:00
54d6f56c0e initial revision
[SVN r15202]
2002-09-08 09:58:13 +00:00
ce2f5ccec1 intial revision
[SVN r15201]
2002-09-08 09:57:18 +00:00
dcb69eaaa1 initial revision cleanup
[SVN r15200]
2002-09-08 09:45:41 +00:00
b1733ed82c initial revision
[SVN r15199]
2002-09-08 09:41:42 +00:00
cdc4be5256 initial revision
[SVN r15198]
2002-09-08 09:40:56 +00:00
cb61e12209 initial revision
[SVN r15197]
2002-09-08 09:24:32 +00:00
76e9f915b7 CWPro8.2 patches
[SVN r14999]
2002-08-20 16:33:43 +00:00
7825392dc5 init commit
[SVN r14977]
2002-08-19 23:29:18 +00:00
553cee40bd high resolution support
[SVN r14556]
2002-07-22 05:50:19 +00:00
89e4b06d8a high-resolution support
[SVN r14555]
2002-07-22 05:49:24 +00:00
47baba7c49 shared temporary digit processing
[SVN r14554]
2002-07-22 05:49:00 +00:00
25054a1ee1 Removed tabs...
[SVN r14481]
2002-07-16 14:55:24 +00:00
00dad65868 BOOST_PP_LOCAL_ITERATION_LIMITS --> BOOST_PP_LOCAL_LIMITS
[SVN r14401]
2002-07-10 19:30:49 +00:00
8e47cb7560 added BOOST_PP_SLOT_MAX
[SVN r14400]
2002-07-10 18:03:58 +00:00
015ac9cb2e unified array interface
[SVN r14387]
2002-07-10 06:29:05 +00:00
6eedec544f fixed undefined behavior
[SVN r14386]
2002-07-10 06:28:31 +00:00
864019147a fixed undefined behavior
[SVN r14385]
2002-07-09 20:40:00 +00:00
f7fefa2a1f bumped up __MWERKS__ version check for 8.1
[SVN r14369]
2002-07-09 14:01:46 +00:00
c1d0b219ac Work around GCC problem caused by space
[SVN r14366]
2002-07-09 10:00:21 +00:00
26b15f8280 MWCW fixes
[SVN r14333]
2002-07-07 22:39:15 +00:00
99ad0e4521 relocated slot interface
[SVN r14332]
2002-07-07 22:20:50 +00:00
f00446c3ab modified detail line
[SVN r14331]
2002-07-07 22:19:23 +00:00
e192e93d0b flag support
[SVN r14330]
2002-07-07 22:18:31 +00:00
cc650688ad obtuse detail line directives
[SVN r14329]
2002-07-07 22:17:51 +00:00
4908f58ea3 built-in flag support
[SVN r14328]
2002-07-07 22:16:26 +00:00
60de301d1f mechanism uses open-ended array
[SVN r14327]
2002-07-07 22:15:08 +00:00
328a52eaaa line directive changes
[SVN r14326]
2002-07-07 22:14:28 +00:00
37d50a375a array data structure support
[SVN r14325]
2002-07-07 22:12:25 +00:00
72727d6d7f Reduced delay
[SVN r14321]
2002-07-07 12:39:43 +00:00
1fec028b57 moved slot interface to slot.hpp
[SVN r14297]
2002-07-04 05:50:50 +00:00
3fe7d6d06a moved slot implementation
[SVN r14296]
2002-07-04 05:49:41 +00:00
75a207b54d evaluated slots moved to separate file
[SVN r14295]
2002-07-04 05:43:11 +00:00
93675ab566 added BOOST_PP_SLOT_LIMIT
[SVN r14268]
2002-07-01 02:08:46 +00:00
216dcaedef cleaned up files
[SVN r14267]
2002-06-30 09:17:09 +00:00
d2c179a6aa brought forced evaluation in line w/slots
[SVN r14266]
2002-06-30 09:16:28 +00:00
a8434508d7 evaluated slot support
[SVN r14265]
2002-06-30 09:14:58 +00:00
b290c9372b added evaluated slot support
[SVN r14264]
2002-06-30 09:13:09 +00:00
842540fcc1 modified name
[SVN r14257]
2002-06-28 05:03:39 +00:00
8b9c75bb07 names changes
[SVN r14251]
2002-06-27 21:05:02 +00:00
e0a31fdd3f small bug fix - extra text
[SVN r14231]
2002-06-24 07:44:16 +00:00
a729a63410 support for absolute iteration depth access
[SVN r14230]
2002-06-24 07:42:30 +00:00
1ed20a224a support of MWCW line directives
[SVN r14229]
2002-06-24 07:35:29 +00:00
0b4d289c85 support for MWCW line directives
[SVN r14228]
2002-06-24 07:35:00 +00:00
a7853cdd68 Temporary fix for BOOST_PP_LIST_FILTER, which should not use BOOST_PP_IF details
[SVN r14227]
2002-06-22 21:53:34 +00:00
d574738487 reverted some C++ style comments to C
[SVN r14225]
2002-06-22 04:24:39 +00:00
851fbc63b8 added BOOST_PP_INCLUDE_SELF()
[SVN r14224]
2002-06-21 23:14:11 +00:00
93a331152d Cpp output cleanup
[SVN r14223]
2002-06-21 23:13:24 +00:00
7f923e81e1 indirect file inclusion
[SVN r14222]
2002-06-21 23:08:36 +00:00
31a8d42f8a renamed BOOST_PP_LOCAL_LIMITS to BOOST_PP_LOCAL_ITERATION_LIMITS
[SVN r14220]
2002-06-21 01:37:30 +00:00
1561ca793c Learning through (stupid) mistakes...
[SVN r14217]
2002-06-20 18:30:31 +00:00
770a0ffec6 Fixed comment bug
[SVN r14216]
2002-06-20 18:22:28 +00:00
1015d853f3 Extending TUPLE_LIMIT to 32
[SVN r14214]
2002-06-20 15:53:24 +00:00
b36731a3d9 Removed // comments from comment (to emphasize C compatibility)
[SVN r14211]
2002-06-20 13:31:55 +00:00
58f88acce6 Increased TUPLE_LIMIT to 32
[SVN r14210]
2002-06-20 12:58:55 +00:00
8b9dcd7849 bug fixes, and filename support
[SVN r14207]
2002-06-20 07:25:26 +00:00
8e2c98f5bc removed unnecessary default lower boundary
[SVN r14206]
2002-06-20 07:01:59 +00:00
3899e96e81 modified upper/lower bound interface
[SVN r14205]
2002-06-20 07:01:10 +00:00
71bd1a7838 minor support of arithmetic expressions
[SVN r14203]
2002-06-20 05:23:31 +00:00
8916f28480 file-iteration support
[SVN r14202]
2002-06-20 03:07:09 +00:00
3e00e24170 upper bound abstraction
[SVN r14201]
2002-06-20 03:05:59 +00:00
34b5b7e8b2 lower bound abstraction
[SVN r14200]
2002-06-20 03:04:41 +00:00
bc9a5ef5f2 local (simple) iteration
[SVN r14199]
2002-06-20 03:02:50 +00:00
23fbdffd78 5th-level iteration
[SVN r14198]
2002-06-20 03:01:37 +00:00
36686c4409 4th-level iteration
[SVN r14197]
2002-06-20 03:01:24 +00:00
6c05aac1a4 3rd-level iteration
[SVN r14196]
2002-06-20 03:01:09 +00:00
ca54dc0ae2 2nd-level iteration
[SVN r14195]
2002-06-20 03:00:53 +00:00
19174bc890 1st-level iteration
[SVN r14194]
2002-06-20 03:00:30 +00:00
a705b07516 more MW CodeWarrior fixes
[SVN r14192]
2002-06-20 01:20:25 +00:00
9891ed94d9 MW CodeWarrior fixes
[SVN r14191]
2002-06-20 00:24:10 +00:00
e5875d57c8 modified EDG test
[SVN r14184]
2002-06-19 19:10:40 +00:00
ebfcf12ef1 formatting
[SVN r14181]
2002-06-19 13:37:09 +00:00
89782cd9be CodeWarrior workaround
[SVN r14180]
2002-06-19 13:36:43 +00:00
5652ca0d38 minor bug fix
[SVN r14179]
2002-06-19 07:16:40 +00:00
b4919e62f4 add support for unrolled BOOST_PP_REPEAT undef EDG front-ends
[SVN r14178]
2002-06-19 06:39:33 +00:00
bcd091a8dd add support for unrolled BOOST_PP_REPEAT undef EDG front-ends
[SVN r14177]
2002-06-19 06:38:43 +00:00
dff892a1b0 unrolled BOOST_PP_REPEAT's
[SVN r14176]
2002-06-19 06:37:29 +00:00
37f823fd4a reinserted delay macros
[SVN r14171]
2002-06-18 21:54:30 +00:00
6a7259a48d Committed fixes from Paul Mensonides
[SVN r14161]
2002-06-17 11:03:00 +00:00
54c727bfe3 2nd attempt to workaround VC6 preprocessor bug by increasing rescanning
[SVN r14158]
2002-06-16 21:15:23 +00:00
cd503a0d89 Attempt to workaround VC6 preprocessor bug by increasing rescanning
[SVN r14155]
2002-06-16 20:23:00 +00:00
8792bd705a Removed MWCW workarounds from tests - tests are now less strict
[SVN r14152]
2002-06-16 09:20:03 +00:00
44b60d95ad Removed MWCW workarounds from tests - tests are now less strict
[SVN r14151]
2002-06-16 09:11:48 +00:00
cbe5e0fa9f New O(N*N) space and O(1) time BOOST_PP_TUPLE_ELEM()
[SVN r14150]
2002-06-16 08:08:00 +00:00
8854c2c573 O(N*N) space and O(1) time BOOST_PP_TUPLE_ELEM()
[SVN r14149]
2002-06-16 08:06:36 +00:00
54d0da5221 Using private detail CAT to avoid DELAY macros
[SVN r14147]
2002-06-14 20:38:54 +00:00
5e0488f509 Removed commas from constant expression
[SVN r14116]
2002-06-09 18:18:27 +00:00
22c81b2b3f MSVC fixes
[SVN r14109]
2002-06-08 06:21:19 +00:00
f5a7b0be75 Doc fix
[SVN r14108]
2002-06-08 00:10:24 +00:00
032860a124 Simplified a test
[SVN r14107]
2002-06-08 00:06:07 +00:00
0bd2709266 Attempt to avoid preprocessor rescan bugs by increasing the amount of rescanning
[SVN r14106]
2002-06-07 22:54:19 +00:00
1884cf8a78 Attempt to avoid preprocessor rescan bugs by increasing the amount of rescanning
[SVN r14105]
2002-06-07 22:45:51 +00:00
9f9048e805 Automatic recursion
[SVN r14100]
2002-06-07 13:04:18 +00:00
a18d5f79fc Removed obsoleted BOOST_PREPROCESSOR_??? macros
[SVN r14099]
2002-06-07 12:56:54 +00:00
ec1d6932d4 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14098]
2002-06-07 12:52:41 +00:00
33ba22e0f6 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14097]
2002-06-07 12:43:59 +00:00
f1bec9eda8 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14096]
2002-06-07 12:26:56 +00:00
760c4206b4 pre
[SVN r13974]
2002-05-18 12:53:05 +00:00
def1674ee7 Header info
[SVN r13970]
2002-05-17 21:24:59 +00:00
330045d332 boost.css
[SVN r13957]
2002-05-16 22:24:11 +00:00
ab81a9c869 boost.css
[SVN r13956]
2002-05-16 22:17:39 +00:00
bf45543e2f Minor optimization
[SVN r13552]
2002-04-23 15:17:27 +00:00
aa738488be Minor optimization on BOOST_PP_TUPLE_ELEM()
[SVN r13550]
2002-04-23 14:56:38 +00:00
bfd89be28b Renamed 1 character parameter names
[SVN r13549]
2002-04-23 13:52:36 +00:00
b899890a46 Renamed 1 character parameter names
[SVN r13548]
2002-04-23 12:55:48 +00:00
34c788f3a0 Changed syntax of half-open range
[SVN r13491]
2002-04-15 06:49:49 +00:00
19962553a5 Removed obsolete functions from the reference.
[SVN r13474]
2002-04-13 11:14:50 +00:00
336749e0ae Added requirements on numeric parameters
[SVN r13460]
2002-04-12 12:16:05 +00:00
06ff87a86c Longer macro parameter names
[SVN r13459]
2002-04-12 11:26:25 +00:00
3468956bc9 Added FROM_TO repetition macros.
[SVN r13364]
2002-04-04 08:23:26 +00:00
acb748ed77 Removed plan
[SVN r13177]
2002-03-11 20:16:24 +00:00
fcd4b15cdf Renamed BOOST_PP_IF_THEN to BOOST_PP_EXPR_IF
[SVN r13173]
2002-03-11 16:11:34 +00:00
a3e207e706 Docs updated
[SVN r13170]
2002-03-10 15:15:41 +00:00
03b37c307f Docs updated
[SVN r13169]
2002-03-10 12:31:37 +00:00
7202e6b56e Removed MWCW version number test from workarounds
[SVN r13166]
2002-03-10 08:27:13 +00:00
1ad72e98a9 Docs update
[SVN r13144]
2002-03-09 13:55:00 +00:00
da66351f86 Docs updates
[SVN r13142]
2002-03-09 08:57:33 +00:00
140a30f6f4 Fixed off-by-one error in documentation
[SVN r13129]
2002-03-08 13:27:37 +00:00
717666e5d4 Added BOOST_PP_IF_THEN
[SVN r13127]
2002-03-08 07:30:26 +00:00
7980b6e377 Added a link page to the examples
[SVN r13126]
2002-03-08 06:18:57 +00:00
2b9fee0cff How to make longer lists
[SVN r13037]
2002-03-03 08:39:30 +00:00
0b714a0ce7 Fixed embarrassing bug at N=0
[SVN r12951]
2002-02-27 07:42:00 +00:00
8a557b560b Added Duff's Device example
[SVN r12949]
2002-02-27 05:54:07 +00:00
2fc11e125a Added BOOST_PP_LIST_FOR_EACH_I
[SVN r12928]
2002-02-24 19:57:25 +00:00
045d40e5a6 Added BOOST_PP_LIST_FOLD_LEFT_2ND and BOOST_PP_LIST_FOLD_RIGHT_2ND
[SVN r12927]
2002-02-24 07:52:50 +00:00
23a1e16489 Some doc updates
[SVN r12926]
2002-02-24 07:45:22 +00:00
5fa1ddda5a Added ???_R and ???_D macros to reference
[SVN r12910]
2002-02-23 10:50:32 +00:00
dba7ae68c7 Added ???_D and ???_R names
[SVN r12909]
2002-02-23 10:28:28 +00:00
0681e43c79 Doxygen is out
[SVN r12908]
2002-02-23 10:26:09 +00:00
324604edce Added BOOST_PP_LIST_FOLD_LEFT_2ND and BOOST_PP_LIST_FOLD_RIGHT_2ND
[SVN r12897]
2002-02-22 12:48:27 +00:00
4834a1927b Added BOOST_PP_FOLD_RIGHT_2ND
[SVN r12896]
2002-02-22 11:03:40 +00:00
ffef0494ce Added BOOST_PP_FOLD_LEFT_2ND
[SVN r12895]
2002-02-22 10:40:34 +00:00
86be4492a3 Added BOOST_PP_FOLD_LEFT_2ND()
[SVN r12894]
2002-02-22 10:38:40 +00:00
6229f991c8 Added timestamp
[SVN r12893]
2002-02-22 07:39:56 +00:00
4c6d309384 MWCW workaround
[SVN r12760]
2002-02-08 16:54:43 +00:00
332e6a9ac4 Fixed title decoration
[SVN r12730]
2002-02-05 16:16:04 +00:00
485782792a Bibliography instead of References
[SVN r12729]
2002-02-05 16:14:26 +00:00
30da4c621b Minor simplification
[SVN r12726]
2002-02-05 12:42:59 +00:00
12b58b5b34 Added test for BOOST_PP_LIST_SIZE
[SVN r12725]
2002-02-05 12:20:00 +00:00
ce975e7b9f Changed to recommended usage style of BOOST_PP_EMPTY & BOOST_PP_IDENTITY
[SVN r12724]
2002-02-05 12:19:33 +00:00
0fc08260e2 Added link to test
[SVN r12723]
2002-02-05 12:17:12 +00:00
a13076a3c6 Updated
[SVN r12722]
2002-02-05 12:16:25 +00:00
363ca22cc2 Updated
[SVN r12721]
2002-02-05 12:13:37 +00:00
b8259b1cc9 Added link to test
[SVN r12720]
2002-02-05 12:12:07 +00:00
3805c6f71d Added test for BOOST_PP_LIST_FOR_EACH_PRODUCT()
[SVN r12719]
2002-02-05 11:30:34 +00:00
41d99b49e4 Starting to use the new templates
[SVN r12718]
2002-02-05 08:27:20 +00:00
6248559797 Doc fix
[SVN r12717]
2002-02-05 07:37:59 +00:00
6f18b29f39 Removed broken stylesheet link
[SVN r12700]
2002-02-04 19:42:54 +00:00
6bfd1b65f1 Bug fix
[SVN r12694]
2002-02-04 15:19:08 +00:00
ba2c70ef83 Updated docs
[SVN r12693]
2002-02-04 15:02:59 +00:00
00d4dc6155 Updated
[SVN r12692]
2002-02-04 15:00:30 +00:00
cda5e36015 Update
[SVN r12691]
2002-02-04 14:57:59 +00:00
f5669614af Added TUPLE_REVERSE, Fixed LIST_ENUM & LIST_FOR_EACH. Changed
LIST_FOR_EACH_PRODUCT.


[SVN r12690]
2002-02-04 14:56:27 +00:00
8432192ac0 Updated docs
[SVN r12687]
2002-02-04 13:32:28 +00:00
6fa0d837a3 Enhancing docs
[SVN r12620]
2002-02-01 11:41:38 +00:00
d791b3f756 Working on docs
[SVN r12619]
2002-02-01 11:40:52 +00:00
3b7418f9ce Working on docs
[SVN r12612]
2002-01-31 21:52:46 +00:00
b9f6fe1795 Example on using BOOST_PP_WHILE()
[SVN r12611]
2002-01-31 21:14:39 +00:00
cc15a18bf6 More examples
[SVN r12609]
2002-01-31 18:30:49 +00:00
4231b56bb1 HTML fix
[SVN r12608]
2002-01-31 17:21:59 +00:00
28ead7541e Using BOOST_PP_LIST_CAT()
[SVN r12607]
2002-01-31 16:35:35 +00:00
b9fc39ddd5 New reference
[SVN r12606]
2002-01-31 15:36:01 +00:00
2261c57310 Tweaking docs
[SVN r12604]
2002-01-31 14:21:31 +00:00
f1590b8c08 Tweaking docs
[SVN r12602]
2002-01-31 13:16:47 +00:00
31b1b43b9f Improving docs
[SVN r12598]
2002-01-31 08:12:31 +00:00
756563fb76 Working on docs.
[SVN r12587]
2002-01-30 19:53:52 +00:00
e8b6627a48 Working on docs
[SVN r12586]
2002-01-30 19:52:31 +00:00
460db18e02 Documentation in progress
[SVN r12585]
2002-01-30 17:54:36 +00:00
ae7ca5e40d Renamed delay.cpp to delay.c
[SVN r12579]
2002-01-30 14:58:05 +00:00
704705aebe Who needs templates anyway? :)
[SVN r12578]
2002-01-30 14:57:31 +00:00
7e20901c38 Ported to MSVC++ and MWCW.
[SVN r12577]
2002-01-30 14:47:44 +00:00
84a46d253a Added BOOST_PP_LIST_FOR_EACH_PRODUCT
[SVN r12572]
2002-01-30 10:23:09 +00:00
18ae25d5e5 LIST_FOR_EACH_PRODUCT() added to library
[SVN r12571]
2002-01-30 10:22:13 +00:00
9d401687ef Added but not documented LIST_FOR_EACH_PRODUCT()
[SVN r12570]
2002-01-30 10:16:39 +00:00
d0f812ce7e Acknowledged Chris Little and Mat Marcus.
[SVN r12569]
2002-01-30 08:10:52 +00:00
6b50ff7484 Refinements
[SVN r12555]
2002-01-29 15:06:47 +00:00
59180fab96 Somewhat more C friendly. Uses templates...
[SVN r12554]
2002-01-29 14:30:09 +00:00
9e361682af Somewhat more C friendly. Some tests use templates.
[SVN r12553]
2002-01-29 14:28:42 +00:00
df1244ba20 Preprocessor library is now C friendly.
[SVN r12552]
2002-01-29 14:13:10 +00:00
972f6222d1 Updated plan
[SVN r12549]
2002-01-29 12:56:26 +00:00
418a1a5654 Refinements
[SVN r12547]
2002-01-29 12:24:55 +00:00
3fce5e9ef9 Refinements
[SVN r12546]
2002-01-29 12:02:11 +00:00
9ff3bf1455 Now takes only a couple of minutes to compile.
[SVN r12545]
2002-01-29 10:48:45 +00:00
409f93a5d6 Fix
[SVN r12544]
2002-01-29 10:02:23 +00:00
9fd20dc4e2 Refinements
[SVN r12543]
2002-01-29 09:20:56 +00:00
318494b610 Added a simple example on using BOOST_PP_LIST_FOR_EACH()
[SVN r12541]
2002-01-29 08:37:56 +00:00
2c352e415d Separated unary and binary operators
[SVN r12540]
2002-01-29 07:39:06 +00:00
035c5abcd0 Who needs templates anyway!
[SVN r12537]
2002-01-28 16:17:56 +00:00
1fc3933855 MWCW workaround
[SVN r12506]
2002-01-25 15:26:51 +00:00
0021c42186 Minor technical detail added
[SVN r12499]
2002-01-25 13:54:07 +00:00
6d04d3068b MWCW workarounds
[SVN r12497]
2002-01-25 13:15:56 +00:00
e481dd2824 Removed doxygen version from generated docs - avoids redundant updates!
[SVN r12496]
2002-01-25 13:14:30 +00:00
18f3c4b6ae MWCW workarounds
[SVN r12494]
2002-01-25 13:00:03 +00:00
7fe7c1cb6b Reduced maximum recursion depth requirement
[SVN r12484]
2002-01-24 17:09:40 +00:00
8c690013f4 Added DELAY() example
[SVN r12479]
2002-01-24 15:58:43 +00:00
64e6a56ad0 Minor optimization
[SVN r12478]
2002-01-24 14:06:21 +00:00
28f575096e Minor optimizations
[SVN r12474]
2002-01-24 13:19:20 +00:00
7413d48c47 Minor optimizations
[SVN r12466]
2002-01-23 19:10:47 +00:00
b6dbf78f24 Added a test without rescan
[SVN r12465]
2002-01-23 18:58:18 +00:00
1bfd0f8c40 Minor optimizations
[SVN r12462]
2002-01-23 17:20:54 +00:00
e2d7a2559a Minor optimizations
[SVN r12460]
2002-01-23 16:41:44 +00:00
6c66df95c8 Minor optimization of list processing
[SVN r12458]
2002-01-23 15:16:21 +00:00
f58a5b4e7d BOOST_PP_LIMIT_TUPLE extended to 16
[SVN r12452]
2002-01-23 11:28:10 +00:00
2a8190cf92 Shorter list to reduce compiling time from 13 to 5 on EDG based compilers
[SVN r12445]
2002-01-22 18:09:36 +00:00
09546e072c BOOST_PP_EXPAND now used only as a workaround
[SVN r12441]
2002-01-22 13:41:53 +00:00
cf2315ddea Removed replacement rescan from tests.
Made requirements for BOOST_PP_CAT and BOOST_PP_STRINGIZE stronger.


[SVN r12440]
2002-01-22 13:38:55 +00:00
0724dd58dc Removed apparently redundant uses of BOOST_PP_EXPAND()
[SVN r12438]
2002-01-22 13:35:09 +00:00
aeea661a59 Recognized MSVC++ workaround
[SVN r12437]
2002-01-22 13:33:39 +00:00
fa88c0d360 Changed implementation to allow macro expansion of macro arguments
[SVN r12436]
2002-01-22 13:32:06 +00:00
178a8ab429 Added list data structure
[SVN r12433]
2002-01-22 10:29:42 +00:00
0206bbaa60 Added list data structure
[SVN r12431]
2002-01-22 10:18:08 +00:00
e562e2478b Update documentation
[SVN r12400]
2002-01-21 19:21:24 +00:00
e1af246b06 2D repetition example added to documentation
[SVN r12399]
2002-01-21 19:18:51 +00:00
c518362505 C/C++ -> C++
[SVN r12398]
2002-01-21 19:17:40 +00:00
a07e8b26b7 Minor documentation change
[SVN r12397]
2002-01-21 19:05:49 +00:00
255317ea1b Changed primary e-mail address for Boost development
[SVN r12377]
2002-01-20 19:45:23 +00:00
2e11cfcd42 Refactored the test not to use an O(N*N) operation. Repetition count remains the same.
[SVN r12374]
2002-01-20 17:46:01 +00:00
fbea3f4f9f Increased repetition count of the test to reveal performance issues
[SVN r12373]
2002-01-20 17:42:29 +00:00
3789decea9 Better browsing support
[SVN r12371]
2002-01-20 16:49:07 +00:00
e4516ada6a Added BOOST_PP_FOR, BOOST_PP_ENUM, BOOST_PP_ENUM_SHIFTED
[SVN r12370]
2002-01-20 16:31:41 +00:00
b98a594400 Added BOOST_PP_FOR
[SVN r12369]
2002-01-20 16:29:23 +00:00
73218bea71 Added BOOST_PP_ENUM, BOOST_PP_ENUM_SHIFTED, BOOST_PP_FOR,
BOOST_PP_EXPAND


[SVN r12368]
2002-01-20 16:25:09 +00:00
7653a0a42a Documentation terminology corrected: function -> macro
[SVN r12363]
2002-01-19 20:22:43 +00:00
03e35a4408 Added BOOST_PP_EXPAND()
[SVN r12362]
2002-01-19 20:14:32 +00:00
609357592a Added BOOST_PP_TUPLE_EAT
[SVN r12325]
2002-01-15 16:58:55 +00:00
ea1c66e021 tuple.hpp split.
[SVN r12297]
2002-01-13 15:54:51 +00:00
90e8e9557e BOOST_PP_EAT() added & tuple.hpp split.
[SVN r12296]
2002-01-13 15:53:15 +00:00
6644430159 TUPLE_EAT added
[SVN r12295]
2002-01-13 15:42:53 +00:00
a4dc24ae7c IF uses TUPLE_ELEM to remove two macros
[SVN r12294]
2002-01-13 15:27:25 +00:00
590d3be836 tuple functionality will be divided into multiple headers
[SVN r12293]
2002-01-13 15:23:50 +00:00
4835f0392d minor comment change
[SVN r12292]
2002-01-13 15:17:02 +00:00
5adad67c89 Minor changes.
[SVN r12206]
2002-01-03 14:56:18 +00:00
1f2380191c Bug fix: missing type in TEST() macro.
[SVN r12174]
2001-12-31 11:26:55 +00:00
d8b52a3a42 PREPROCESSOR -> PP. WHILE documented.
[SVN r12162]
2001-12-28 11:06:53 +00:00
5991b00456 Removed unnecessary #includes.
[SVN r12161]
2001-12-28 11:05:11 +00:00
aa53f0052b Split unit test for more fine grained test results
[SVN r12159]
2001-12-28 08:41:34 +00:00
7b1499c976 bumped workaround number to accomodate CodeWarrior beta compiler
[SVN r12124]
2001-12-19 21:30:15 +00:00
6218e5799d Reduced recursion depths due to excessive compile times on EDG
[SVN r12082]
2001-12-17 15:33:10 +00:00
f6d5ec02a8 Removed MUL(50,50), because it takes too much time on some compilers
[SVN r12013]
2001-12-11 07:58:08 +00:00
27466e7d4d Lowered implicitly tested maximum iteration depth slightly
[SVN r12011]
2001-12-10 22:27:07 +00:00
a612153a59 Added MOD
[SVN r12010]
2001-12-10 22:15:42 +00:00
cd69e240b3 Added MOD and implemented ADD, SUB & MUL using WHILE reducing internal repetition
[SVN r12009]
2001-12-10 22:11:42 +00:00
ef938f3335 Removed confusing #include information
[SVN r11987]
2001-12-09 14:30:29 +00:00
90f8bb2304 Compressed while implementation
[SVN r11942]
2001-12-05 22:24:23 +00:00
692025092b Fixed long file names
[SVN r11933]
2001-12-05 18:21:47 +00:00
4c2d36fad3 *** empty log message ***
[SVN r11931]
2001-12-05 17:02:26 +00:00
40de542d88 CodeWarrior workaround
[SVN r11930]
2001-12-05 16:53:42 +00:00
0e7988bb46 Minor updates
[SVN r11889]
2001-12-03 22:29:23 +00:00
5eae85ecd9 Apparently the doxygen generated style sheet was not used.
[SVN r11886]
2001-12-03 21:36:46 +00:00
0dd5c9fe3d Removed doxygen.gif - it is not needed
[SVN r11885]
2001-12-03 21:33:51 +00:00
d9ab221221 Reference document generation files
[SVN r11884]
2001-12-03 21:27:13 +00:00
7b5dd2ba63 Official copyright holder in Finland is "Housemarque Oy"
[SVN r11883]
2001-12-03 21:20:27 +00:00
4eac3f9372 Official copyright holder in Finland is "Housemarque Oy"
[SVN r11880]
2001-12-03 21:11:11 +00:00
f380b1a2d3 Moved test rationale to test code file
[SVN r11878]
2001-12-03 20:58:50 +00:00
1069 changed files with 185813 additions and 7026 deletions

52
.drone.star Normal file
View 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
View 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

369
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,369 @@
name: CI
on:
pull_request:
push:
branches:
- master
- develop
- feature/**
env:
UBSAN_OPTIONS: print_stacktrace=1
jobs:
posix:
strategy:
fail-fast: false
matrix:
include:
- toolset: gcc-4.8
cxxstd: "03,11"
os: ubuntu-18.04
install: g++-4.8
- toolset: gcc-5
cxxstd: "03,11,14,1z"
os: ubuntu-18.04
install: g++-5
- toolset: gcc-6
cxxstd: "03,11,14,1z"
os: ubuntu-18.04
install: g++-6
- toolset: gcc-7
cxxstd: "03,11,14,17"
os: ubuntu-18.04
- toolset: gcc-8
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: g++-8
- toolset: gcc-9
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
- toolset: gcc-10
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: g++-10
- toolset: gcc-11
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: g++-11
- toolset: gcc-12
cxxstd: "03,11,14,17,20,2b"
os: ubuntu-22.04
install: g++-12
- toolset: clang
compiler: clang++-3.9
cxxstd: "03,11,14"
os: ubuntu-18.04
install: clang-3.9
- toolset: clang
compiler: clang++-4.0
cxxstd: "03,11,14"
os: ubuntu-18.04
install: clang-4.0
- toolset: clang
compiler: clang++-5.0
cxxstd: "03,11,14,1z"
os: ubuntu-18.04
install: clang-5.0
- toolset: clang
compiler: clang++-6.0
cxxstd: "03,11,14,17"
os: ubuntu-18.04
install: clang-6.0
- toolset: clang
compiler: clang++-7
cxxstd: "03,11,14,17"
os: ubuntu-18.04
install: clang-7
- toolset: clang
compiler: clang++-8
cxxstd: "03,11,14,17"
os: ubuntu-20.04
install: clang-8
- toolset: clang
compiler: clang++-9
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: clang-9
- toolset: clang
compiler: clang++-10
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: clang-10
- toolset: clang
compiler: clang++-11
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: clang-11
- toolset: clang
compiler: clang++-12
cxxstd: "03,11,14,17,2a"
os: ubuntu-20.04
install: clang-12
- toolset: clang
compiler: clang++-13
cxxstd: "03,11,14,17,20,2b"
os: ubuntu-22.04
install: clang-13
- toolset: clang
compiler: clang++-14
cxxstd: "03,11,14,17,20,2b"
os: ubuntu-22.04
install: clang-14
- toolset: clang
cxxstd: "03,11,14,17,2a"
os: macos-11
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- name: Install packages
if: matrix.install
run: sudo apt install ${{matrix.install}}
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
./bootstrap.sh
./b2 -d0 headers
- name: Create user-config.jam
if: matrix.compiler
run: |
echo "using ${{matrix.toolset}} : : ${{matrix.compiler}} ;" > ~/user-config.jam
- name: Run tests
run: |
cd ../boost-root
./b2 -j3 libs/$LIBRARY/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} variant=debug,release
windows:
strategy:
fail-fast: false
matrix:
include:
- toolset: msvc-14.0
cxxstd: "14,latest"
addrmd: 32,64
os: windows-2019
- toolset: msvc-14.2
cxxstd: "14,17,20,latest"
addrmd: 32,64
os: windows-2019
- toolset: msvc-14.3
cxxstd: "14,17,20,latest"
addrmd: 32,64
os: windows-2022
- toolset: clang-win
cxxstd: "14,17,latest"
addrmd: 32,64
os: windows-2022
- toolset: gcc
cxxstd: "03,11,14,17,2a"
addrmd: 64
os: windows-2019
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- name: Setup Boost
shell: cmd
run: |
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
echo LIBRARY: %LIBRARY%
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
echo GITHUB_REF: %GITHUB_REF%
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
set BOOST_BRANCH=develop
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
echo BOOST_BRANCH: %BOOST_BRANCH%
cd ..
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
cmd /c bootstrap
b2 -d0 headers
- name: Run tests
shell: cmd
run: |
cd ../boost-root
b2 -j3 libs/%LIBRARY%/test toolset=${{matrix.toolset}} cxxstd=${{matrix.cxxstd}} address-model=${{matrix.addrmd}} variant=debug,release embed-manifest-via=linker
posix-cmake-subdir:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
- os: macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- name: Install packages
if: matrix.install
run: sudo apt install ${{matrix.install}}
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
- name: Use library with add_subdirectory
run: |
cd ../boost-root/libs/$LIBRARY/test/cmake_subdir_test
mkdir __build__ && cd __build__
cmake ..
cmake --build .
ctest --output-on-failure --no-tests=error
posix-cmake-install:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
- os: macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- name: Install packages
if: matrix.install
run: sudo apt install ${{matrix.install}}
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
- name: Configure
run: |
cd ../boost-root
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DCMAKE_INSTALL_PREFIX=~/.local ..
- name: Install
run: |
cd ../boost-root/__build__
cmake --build . --target install
- name: Use the installed library
run: |
cd ../boost-root/libs/$LIBRARY/test/cmake_install_test && mkdir __build__ && cd __build__
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
cmake --build .
ctest --output-on-failure --no-tests=error
posix-cmake-test:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
- os: macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
- name: Install packages
if: matrix.install
run: sudo apt install ${{matrix.install}}
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
- name: Configure
run: |
cd ../boost-root
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=$LIBRARY -DBUILD_TESTING=ON ..
- name: Build tests
run: |
cd ../boost-root/__build__
cmake --build . --target tests
- name: Run tests
run: |
cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error

348
.travis.yml Normal file
View 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

18
CMakeLists.txt Normal file
View File

@ -0,0 +1,18 @@
# 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
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()

123
appveyor.yml Normal file
View 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

File diff suppressed because it is too large Load Diff

58
doc/acknowledgements.html Normal file
View File

@ -0,0 +1,58 @@
<html>
<head>
<title>acknowledgements.html</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<h4>Acknowledgements</h4>
<div>
The following are a few acknowledgements of people that contributed to
or were instrumental in the development of the library by Vesa Karnoven and myself.
</div>
<h4>Vesa Karvonen</h4>
<div>
The original idea of passing two extra parameters to REPEAT, which makes it possible to create preprocessor code on top of it,
was due to Aleksey Gurtovoy.&nbsp;
The invokeable IDENTITY macro was invented by him.&nbsp;
He also suggested the name for the library.&nbsp;
Many thanks to Aleksey for his insights!
</div>
<div>
Thanks to everyone who participated in the review:&nbsp; David Abrahams, Beman Dawes, Ronald Garcia, Douglas Gregor, Aleksey Gurtovoy, Jeremy Siek, and Daryle Walker.
</div>
<div>
Thanks to Chris Little and Mat Marcus for providing help with MWCW.
</div>
<div>
The original automatic recursion technique, which makes many of the library
primitives easier to use, was invented by Paul Mensonides.
</div>
<div>
The PREPROCESSOR library has been developed by Vesa Karvonen.
</div>
<h4>Paul Mensonides</h4>
<div>
Thanks to Vesa Karvonen for the original conception of the library.&nbsp;
His work, his help, and his opinions are all much appreciated.
</div>
<div>
Thanks also to David Abrahams for his observations and continued support.
</div>
<div>
The help of several other Boost developers is also greatly appreciated.&nbsp;
In particular, thanks to Aleksey Gurtovoy for his suggestions and to Ralf W. Grosse-Kunstleve for providing
access to several compilers for testing.
</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>

58
doc/bibliography.html Normal file
View File

@ -0,0 +1,58 @@
<html>
<head>
<title>bibliography.html</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<h4>Bibliography</h4>
<table style="margin-left: 20px">
<tr>
<td><b><a name="stroustrup"></a>[Stroustrup]</b></td>
<td>Stroustrup:&nbsp; <i>The Design and Evolution of C++</i>, ISBN 0201543303</td>
</tr>
<tr>
<td><b><a name="czarnecki"></a>[Czarnecki]</b></td>
<td>Czarnecki, Eisenecker:&nbsp; <i>Generative Programming</i>, ISBN 0201309777</td>
</tr>
<tr>
<td><b><b><a name="barton"></a>[Barton]</b></td>
<td>Barton, Nackman:&nbsp; <i>Scientific and Engineering C++</i>, ISBN 0201533936</td>
</tr>
<tr>
<td><b><a name="mcconnell"></a>[McConnell]</b></td>
<td>McConnell:&nbsp; <i>Code Complete</i>, ISBN 1556154844</td>
</tr>
<tr>
<td><b><a name="std"></a>[Std]</b></td>
<td>ISO/IEC 14882:1998 <i>Programming Languages - C++</i></td>
</tr>
<tr>
<td><b>[Thompson]</b></td>
<td>Thompson:&nbsp; <i>Haskell:&nbsp; The Craft of Functional Programming</i>, ISBN 0201342758</td>
</tr>
<tr>
<td><b>[Okasaki]</b></td>
<td>Okasaki:&nbsp; <i>Purely Functional Data Structures</i>, ISBN 0521663504</td>
</tr>
<tr>
<td><b>[Cousineau]</b></td>
<td>Cousineau, Mauny:&nbsp; <i>The Functional Approach to Programming</i>, ISBN 0521576814</td>
</tr>
<tr>
<td><b>[Abelson]</b></td>
<td>Abelson, Sussman, Sussman:&nbsp; <i>Structure and Interpretation of Computer Programs</i>, ISBN 0521576814</td>
</tr>
</table>
<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>

37
doc/contents.html Normal file
View File

@ -0,0 +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>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="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>

27
doc/data.html Normal file
View File

@ -0,0 +1,27 @@
<html>
<head>
<title>data.html</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<base target="desc">
</head>
<body>
<h4>
Data Types <small><a href="contents.html" target="index">[back]</a></small>
</h4>
<ul>
<li><a href="data/arrays.html">arrays</a></li>
<li><a href="data/lists.html">lists</a></li>
<li><a href="data/sequences.html">sequences</a></li>
<li><a href="data/tuples.html">tuples</a></li>
</ul>
<!--
<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>

53
doc/data/arrays.html Normal file
View File

@ -0,0 +1,53 @@
<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>
<body>
<h4>Arrays</h4>
<div> An <i>array</i> is a data structure consisting of a two-element <i>tuple</i>.&nbsp;
The first element is the number of elements in the <i>array</i>.&nbsp;
The second element is another <i>tuple</i> of the elements in the <i>array</i>.&nbsp;
For example, </div>
<div class="code"> (<i>3</i>, (<i>a</i>, <i>b</i>, <i>c</i>)) </div>
<div> ...is an <i>array</i> of <i>3</i> elements--<i>a</i>, <i>b</i>, and
<i>c</i>. </div>
<div> The primary strength of <i>arrays</i> is that they store their own
size.&nbsp; Because of this, access to elements does not require the
size.&nbsp; 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.<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. 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>,
and an <i>array</i> can be converted to the more primitive <i>tuple</i>
data structure with <b>BOOST_PP_ARRAY_DATA</b>. </div>
<h4>Primitives</h4>
<ul>
<li><a href="../ref/array_data.html">BOOST_PP_ARRAY_DATA</a></li>
<li><a href="../ref/array_elem.html">BOOST_PP_ARRAY_ELEM</a></li>
<li><a href="../ref/array_size.html">BOOST_PP_ARRAY_SIZE</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>

42
doc/data/lists.html Normal file
View File

@ -0,0 +1,42 @@
<html>
<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.&nbsp; 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>.&nbsp; </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>

60
doc/data/sequences.html Normal file
View File

@ -0,0 +1,60 @@
<html>
<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.&nbsp; 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 ^
BOOST_PP_SEQ_FOLD_LEFT(REVERSE, BOOST_PP_EMPTY, SEQ)()
// #1 #2
// 1) placeholder for "empty" seq
// 2) remove placeholder
#define SEQ_B (1)(2)(3)
#define INC(s, state, elem) state (BOOST_PP_INC(elem))
// append to tail ^
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.&nbsp; Element access speed
approaches random access--even with <i>seqs</i> of up to <i>256</i>
elements.&nbsp; This is because element access (among other things) is
implemented iteratively rather than recursively.&nbsp; 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>

40
doc/data/tuples.html Normal file
View File

@ -0,0 +1,40 @@
<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>
<body>
<h4>Tuples</h4>
<div> A <i>tuple</i> is a simple comma-separated list of elements inside
parenthesis.&nbsp; 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>.<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.&nbsp; With variadic macro
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>
<ul>
<li><a href="../ref/tuple_elem.html">BOOST_PP_TUPLE_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>

27
doc/examples.html Normal file
View File

@ -0,0 +1,27 @@
<html>
<head>
<title>topics.html</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<base target="desc">
</head>
<body>
<h4>Examples <small><a href="contents.html" target="index">[back]</a></small></h4>
<ul>
<li><a href="examples/array_arithmetic.c">array_arithmetic.c</a></i>
<li><a href="examples/catch_builtin.cpp">catch_builtin.cpp</a></i>
<li><a href="examples/delay.c">delay.c</a></i>
<li><a href="examples/duffs_device.c">duffs_device.c</a></i>
<li><a href="examples/is_integral.cpp">is_integral.cpp</a></li>
<li><a href="examples/linear_fib.c">linear_fib.c</a></li>
</ul>
<!--
<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>

View File

@ -0,0 +1,196 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* This example implements over 2200 functions for 1-dimensional arithmetic
# * array manipulation in C. The idea is to use preprocessor data structures,
# * lists, and tuples for storing metainformation to be used for generating
# * the actual C code.
# *
# * Who needs templates anyway? :)
# *
# * Compile with any C compiler with a standards conforming preprocessor.
# */
#
# include <boost/preprocessor/comparison/less.hpp>
# include <boost/preprocessor/control/if.hpp>
# include <boost/preprocessor/list/at.hpp>
# include <boost/preprocessor/list/cat.hpp>
# include <boost/preprocessor/list/for_each_product.hpp>
# include <boost/preprocessor/logical/or.hpp>
# include <boost/preprocessor/tuple/to_list.hpp>
# include <boost/preprocessor/tuple/eat.hpp>
#
# /* Information about C operators */
#
# /* Accessors for the operator datatype. */
# define OP_SYMBOL(O) BOOST_PP_TUPLE_ELEM(5, 0, O)
# define OP_NAME(O) BOOST_PP_TUPLE_ELEM(5, 1, O)
# define OP_IS_FLOATING(O) BOOST_PP_TUPLE_ELEM(5, 2, O)
# define OP_IS_LOGICAL(O) BOOST_PP_TUPLE_ELEM(5, 3, O)
# define OP_IS_SHIFT(O) BOOST_PP_TUPLE_ELEM(5, 4, O)
#
# /* List of applicative unary operators. */
# define APPLICATIVE_UNARY_OPS \
BOOST_PP_TUPLE_TO_LIST( \
3, \
( \
( ! , logical_not, 1, 1, 0), \
( ~ , bitwise_not, 0, 0, 0), \
( - , neg, 1, 0, 0) \
) \
) \
/**/
#
# /* List of applicative binary operators. */
# define APPLICATIVE_BINARY_OPS \
BOOST_PP_TUPLE_TO_LIST( \
18, \
( \
( * , mul ,1 ,0 ,0), \
( / , div ,1 ,0 ,0), \
( % , mod ,0 ,0 ,0), \
( + , add ,1 ,0 ,0), \
( - , sub ,1 ,0 ,0), \
( << , shift_left ,0 ,0 ,1), \
( >> , shift_right ,0 ,0 ,1), \
( < , less ,1 ,1 ,0), \
( <= , less_equal ,1 ,1 ,0), \
( >= , greater_equal ,1 ,1 ,0), \
( > , greater ,1 ,1 ,0), \
( == , equal ,1 ,1 ,0), \
( != , not_equal ,1 ,1 ,0), \
( & , bitwise_and ,0 ,0 ,0), \
( | , bitwise_or ,0 ,0 ,0), \
( ^ , bitwise_xor ,0 ,0 ,0), \
( && , logical_and ,1 ,1 ,0), \
( || , logical_or ,1 ,1 ,0) \
) \
) \
/**/
#
# /* Information about C built-in types. */
#
# /* Accessors for the type datatype. */
# define TYPE_NAME(T) BOOST_PP_TUPLE_ELEM(4, 0, T)
# define TYPE_ABBREVIATION(T) BOOST_PP_TUPLE_ELEM(4, 1, T)
# define TYPE_IS_FLOATING(T) BOOST_PP_TUPLE_ELEM(4, 2, T)
# define TYPE_RANK(T) BOOST_PP_TUPLE_ELEM(4, 3, T)
#
# /* List of C built-in types. */
# define BUILTIN_TYPES \
BOOST_PP_TUPLE_TO_LIST( \
12, \
( \
( signed char ,sc, 0, 1), \
( char ,ch, 0, 1), \
( unsigned char ,uc, 0, 1), \
( short ,ss, 0, 2), \
( unsigned short ,us, 0, 2), \
TYPE_INT, \
( unsigned ,ui, 0, 4), \
( long ,sl, 0, 5), \
( unsigned long ,ul, 0, 6), \
( float ,fl, 1, 7), \
( double ,db, 1, 8), \
( long double ,ld, 1, 9) \
) \
) \
/**/
#
# /* Type int is needed in some type computations. */
# define TYPE_INT (int, si, 0, 3)
#
# /* Type computation macros. */
# define TYPE_OF_INTEGER_PROMOTION(T) \
BOOST_PP_IF( \
BOOST_PP_LESS(TYPE_RANK(T), TYPE_RANK(TYPE_INT)), \
TYPE_INT, T \
) \
/**/
# define TYPE_OF_USUAL_ARITHMETIC_CONVERSION(L, R) \
TYPE_OF_INTEGER_PROMOTION( \
BOOST_PP_IF( \
BOOST_PP_LESS(TYPE_RANK(L), TYPE_RANK(R)), \
R, L \
) \
) \
/**/
# define TYPE_OF_UNARY_OP(O, T) \
BOOST_PP_IF( \
OP_IS_LOGICAL(O), \
TYPE_INT, TYPE_OF_INTEGER_PROMOTION(T) \
) \
/**/
# define TYPE_OF_BINARY_OP(O, L, R) \
BOOST_PP_IF( \
OP_IS_LOGICAL(O), TYPE_INT, \
BOOST_PP_IF( \
OP_IS_SHIFT(O), \
TYPE_OF_INTEGER_PROMOTION(L), \
TYPE_OF_USUAL_ARITHMETIC_CONVERSION(L,R) \
) \
) \
/**/
# define IS_VALID_UNARY_OP_AND_TYPE_COMBINATION(O, T) \
BOOST_PP_IF( \
TYPE_IS_FLOATING(T), \
OP_IS_FLOATING(O), 1 \
) \
/**/
# define IS_VALID_BINARY_OP_AND_TYPE_COMBINATION(O, L, R) \
BOOST_PP_IF( \
BOOST_PP_OR(TYPE_IS_FLOATING(L), TYPE_IS_FLOATING(R)), \
OP_IS_FLOATING(O), 1 \
) \
/**/
#
# /* Generates code for all unary operators and integral types. */
# define UNARY_ARRAY_OP(_, OT) \
BOOST_PP_IF( \
IS_VALID_UNARY_OP_AND_TYPE_COMBINATION OT, \
UNARY_ARRAY_OP_CODE, BOOST_PP_TUPLE_EAT(2) \
) OT \
/**/
# define UNARY_ARRAY_OP_CODE(O, T) \
void BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(4, (array_, OP_NAME(O), _, TYPE_ABBREVIATION(T)))) \
(const TYPE_NAME(T)* in, TYPE_NAME(TYPE_OF_UNARY_OP(O, T))* out, unsigned n) { \
do { \
*out++ = OP_SYMBOL(O) *in++; \
} while (--n); \
} \
/**/
BOOST_PP_LIST_FOR_EACH_PRODUCT(UNARY_ARRAY_OP, 2, (APPLICATIVE_UNARY_OPS, BUILTIN_TYPES))
# /* Generates code for all binary operators and integral type pairs. */
# define BINARY_ARRAY_OP(_, OLR) \
BOOST_PP_IF( \
IS_VALID_BINARY_OP_AND_TYPE_COMBINATION OLR, \
BINARY_ARRAY_OP_CODE, BOOST_PP_TUPLE_EAT(3) \
) OLR \
/**/
# define BINARY_ARRAY_OP_CODE(O, L, R) \
void BOOST_PP_LIST_CAT( \
BOOST_PP_TUPLE_TO_LIST( \
6, (array_, OP_NAME(O), _, TYPE_ABBREVIATION(L), _, TYPE_ABBREVIATION(R)) \
) \
)(const TYPE_NAME(L)* lhs_in, const TYPE_NAME(R)* rhs_in, TYPE_NAME(TYPE_OF_BINARY_OP(O, L, R))* out, unsigned n) { \
do { \
*out++ = *lhs_in OP_SYMBOL(O) *rhs_in; \
++lhs_in; \
++rhs_in; \
} while (--n); \
} \
/**/
BOOST_PP_LIST_FOR_EACH_PRODUCT(BINARY_ARRAY_OP, 3, (APPLICATIVE_BINARY_OPS, BUILTIN_TYPES, BUILTIN_TYPES))

View File

@ -0,0 +1,51 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* This example demonstrates the usage of lists and BOOST_PP_LIST_FOR_EACH(). */
#
# include <iostream>
# include <typeinfo>
#
# include <boost/preprocessor/list/for_each.hpp>
# include <boost/preprocessor/tuple/to_list.hpp>
#
# /* List of built-in types. (Strictly speaking wchar_t should be on the list.) */
#
# define BUILTIN_TYPES \
BOOST_PP_TUPLE_TO_LIST( \
13, \
( \
bool, \
char, signed char, unsigned char, \
unsigned short, short, \
int, unsigned, \
long, unsigned long, \
float, \
double, long double \
) \
) \
/**/
#
# define CATCH(R, _, T) \
catch (T t) { \
std::cerr << "Caught an " << typeid(t).name() << " = " << t; \
} \
/**/
int main() {
try {
throw 10;
}
BOOST_PP_LIST_FOR_EACH(CATCH, _, BUILTIN_TYPES)
return 0;
}

95
doc/examples/delay.c Normal file
View File

@ -0,0 +1,95 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* The time complexity of DELAY(N) is O(2^N).
# *
# * Handy when recompiles are too fast to take a coffee break. :)
# *
# * Template metaprogramming can be used for implementing similar
# * delays. Unfortunately template instantiation consumes memory,
# * therefore compilers usually fail to fully compile long template
# * based delays, because they run out of memory.
# *
# * On many compilers (e.g. g++, MSVC++), this macro takes only a
# * small amount of memory to preprocess. On some compilers (e.g.
# * MWCW), however, this macro seems to consume huge amounts of
# * memory.
# */
#
# include <boost/preprocessor/arithmetic/dec.hpp>
# include <boost/preprocessor/cat.hpp>
# include <boost/preprocessor/control/while.hpp>
# include <boost/preprocessor/facilities/empty.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
#
# ifndef DELAY_MAX
# define DELAY_MAX 14
# endif
#
# define DELAY(N) BOOST_PP_TUPLE_ELEM(2, 0, (BOOST_PP_EMPTY, BOOST_PP_WHILE(DELAY_C, BOOST_PP_CAT(DELAY_F, N), BOOST_PP_DEC(N))))()
#
# define DELAY_C(D, N) N
#
# define DELAY_F0(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F1(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F2(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F3(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F4(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F5(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F6(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F7(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F8(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F9(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F10(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F11(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F12(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F13(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F14(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F15(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F16(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F17(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F18(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F19(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F20(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F21(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F22(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F23(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F24(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F25(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F26(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F27(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F28(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F29(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F30(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F31(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F32(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F33(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F34(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F35(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F36(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F37(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F38(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F39(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F40(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F41(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F42(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F43(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F44(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F45(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F46(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F47(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F48(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F49(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
# define DELAY_F50(D, N) BOOST_PP_IF(1, BOOST_PP_DEC(N), BOOST_PP_WHILE_ ## D(DELAY_C, DELAY_F ## N, BOOST_PP_DEC(N)))
DELAY(DELAY_MAX)

View File

@ -0,0 +1,61 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* This example uses the preprocessor library to implement a generalized
# * macro for implementing Duff's Device.
# *
# * This example was inspired by an original generalized macro for
# * for implementing Duff's Device written by Joerg Walter.
# */
#
# include <assert.h>
#
# include <boost/preprocessor/repetition/repeat.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
#
# /* Expands to a Duff's Device. */
# define DUFFS_DEVICE(UNROLLING_FACTOR, COUNTER_TYPE, N, STATEMENT) \
do { \
COUNTER_TYPE duffs_device_initial_cnt = (N); \
if (duffs_device_initial_cnt > 0) { \
COUNTER_TYPE duffs_device_running_cnt = (duffs_device_initial_cnt + (UNROLLING_FACTOR - 1)) / UNROLLING_FACTOR; \
switch (duffs_device_initial_cnt % UNROLLING_FACTOR) { \
do { \
BOOST_PP_REPEAT(UNROLLING_FACTOR, DUFFS_DEVICE_C, (UNROLLING_FACTOR, { STATEMENT })) \
} while (--duffs_device_running_cnt); \
} \
} \
} while (0) \
/**/
#
# define DUFFS_DEVICE_C(Z, I, UNROLLING_FACTOR_STATEMENT) \
case (I ? BOOST_PP_TUPLE_ELEM(2, 0, UNROLLING_FACTOR_STATEMENT) - I : 0): \
BOOST_PP_TUPLE_ELEM(2, 1, UNROLLING_FACTOR_STATEMENT); \
/**/
#
# ifndef UNROLLING_FACTOR
# define UNROLLING_FACTOR 16
# endif
#
# ifndef N
# define N 1000
# endif
int main(void) {
int i = 0;
DUFFS_DEVICE(UNROLLING_FACTOR, int, 0, ++i;);
assert(i == 0);
DUFFS_DEVICE(UNROLLING_FACTOR, int, N, ++i;);
assert(i == N);
return 0;
}

View File

@ -0,0 +1,49 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* This example demonstrates the usage of preprocessor lists for generating C++ code. */
#
# include <boost/preprocessor/facilities/empty.hpp>
# include <boost/preprocessor/list/at.hpp>
# include <boost/preprocessor/list/for_each_product.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
# include <boost/preprocessor/tuple/to_list.hpp>
#
# /* List of integral types. (Strictly speaking, wchar_t should be on the list.) */
# define INTEGRAL_TYPES \
BOOST_PP_TUPLE_TO_LIST( \
9, (char, signed char, unsigned char, short, unsigned short, int, unsigned, long, unsigned long) \
) \
/**/
#
# /* List of invokeable cv-qualifiers */
# define CV_QUALIFIERS \
BOOST_PP_TUPLE_TO_LIST( \
4, (BOOST_PP_EMPTY, const BOOST_PP_EMPTY, volatile BOOST_PP_EMPTY, const volatile BOOST_PP_EMPTY) \
) \
/**/
#
# /* Template for testing whether a type is an integral type. */
template<class T> struct is_integral {
enum { value = false };
};
# /* Macro for defining a specialization of is_integral<> template. */
# define IS_INTEGRAL_SPECIALIZATION(R, L) \
template<> struct is_integral<BOOST_PP_TUPLE_ELEM(2, 0, L)() BOOST_PP_TUPLE_ELEM(2, 1, L)> { \
enum { value = true }; \
}; \
/**/
BOOST_PP_LIST_FOR_EACH_PRODUCT(IS_INTEGRAL_SPECIALIZATION, 2, (CV_QUALIFIERS, INTEGRAL_TYPES))

91
doc/examples/linear_fib.c Normal file
View File

@ -0,0 +1,91 @@
# /* Copyright (C) 2002
# * 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. */
#
# /* This example shows how BOOST_PP_WHILE() can be used for implementing macros. */
#
# include <stdio.h>
#
# include <boost/preprocessor/arithmetic/add.hpp>
# include <boost/preprocessor/arithmetic/sub.hpp>
# include <boost/preprocessor/comparison/less_equal.hpp>
# include <boost/preprocessor/control/while.hpp>
# include <boost/preprocessor/list/adt.hpp>
# include <boost/preprocessor/tuple/elem.hpp>
#
# /* First consider the following C implementation of Fibonacci. */
typedef struct linear_fib_state {
int a0, a1, n;
} linear_fib_state;
static int linear_fib_c(linear_fib_state p) {
return p.n;
}
static linear_fib_state linear_fib_f(linear_fib_state p) {
linear_fib_state r = { p.a1, p.a0 + p.a1, p.n - 1 };
return r;
}
static int linear_fib(int n) {
linear_fib_state p = { 0, 1, n };
while (linear_fib_c(p)) {
p = linear_fib_f(p);
}
return p.a0;
}
# /* Then consider the following preprocessor implementation of Fibonacci. */
#
# define LINEAR_FIB(n) LINEAR_FIB_D(1, n)
# /* Since the macro is implemented using BOOST_PP_WHILE, the actual
# * implementation takes a depth as a parameters so that it can be called
# * inside a BOOST_PP_WHILE. The above easy-to-use version simply uses 1
# * as the depth and cannot be called inside a BOOST_PP_WHILE.
# */
#
# define LINEAR_FIB_D(d, n) \
BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE_ ## d(LINEAR_FIB_C, LINEAR_FIB_F, (0, 1, n)))
# /* ^^^^ ^^^^^ ^^ ^^ ^^^^^^^
# * #1 #2 #3 #3 #4
# *
# * 1) The state is a 3-element tuple. After the iteration is finished, the first
# * element of the tuple is the result.
# *
# * 2) The WHILE primitive is "invoked" directly. BOOST_PP_WHILE(D, ...)
# * can't be used because it would not be expanded by the preprocessor.
# *
# * 3) ???_C is the condition and ???_F is the iteration macro.
# */
#
# define LINEAR_FIB_C(d, p) \
/* p.n */ BOOST_PP_TUPLE_ELEM(3, 2, p) \
/**/
#
# define LINEAR_FIB_F(d, p) \
( \
/* p.a1 */ BOOST_PP_TUPLE_ELEM(3, 1, p), \
/* p.a0 + p.a1 */ BOOST_PP_ADD_D(d, BOOST_PP_TUPLE_ELEM(3, 0, p), BOOST_PP_TUPLE_ELEM(3, 1, p)), \
/* ^^ ^ \
* BOOST_PP_ADD() uses BOOST_PP_WHILE(). Therefore we \
* pass the recursion depth explicitly to BOOST_PP_ADD_D(). \
*/ \
/* p.n - 1 */ BOOST_PP_DEC(BOOST_PP_TUPLE_ELEM(3, 2, p)) \
) \
/**/
int main() {
printf("linear_fib(10) = %d\n", linear_fib(10));
printf("LINEAR_FIB(10) = %d\n", LINEAR_FIB(10));
return 0;
}

View File

@ -1,334 +0,0 @@
<html>
<head>
<title>Boost PREPROCESSOR library</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<a href="index.htm"><IMG height=86
alt="c++boost.gif (8819 bytes)"
src="../../../c++boost.gif"
width=277 align=center></a>
<hr>
<h1>Boost PREPROCESSOR library: Tutorial examples preprocessed</h1>
<p>The following code snippets were produced by actually preprocessing the code
snippets of the tutorial. After preprocessing the code was reformatted manually.</p>
<hr>
<p><strong><a name="Local Macro"></a><a href="tutorial.htm#Local Macro">EXAMPLE</a>:</strong>
Use a Local Macro to avoid small scale repetition</p>
<blockquote>
<pre>template&lt;class T, int n&gt;
vec&lt;T,n&gt;&
operator +=
( vec&lt;T,n&gt;&
lhs
, const vec&lt;T,n&gt;&
rhs
)
{ for (int i=0; i&lt;n; ++i)
lhs(i) += rhs(i);
return lhs;
}
template&lt;class T, int n&gt;
vec&lt;T,n&gt;&
operator -=
( vec&lt;T,n&gt;&
lhs
, const vec&lt;T,n&gt;&
rhs
)
{ for (int i=0; i&lt;n; ++i)
lhs(i) -= rhs(i);
return lhs;
}
template&lt;class T, int n&gt;
vec&lt;T,n&gt;&
operator *=
( vec&lt;T,n&gt;&
lhs
, const vec&lt;T,n&gt;&
rhs
)
{ for (int i=0; i&lt;n; ++i)
lhs(i) *= rhs(i);
return lhs;
}
template&lt;class T, int n&gt;
vec&lt;T,n&gt;&
operator /=
( vec&lt;T,n&gt;&
lhs
, const vec&lt;T,n&gt;&
rhs
)
{ for (int i=0; i&lt;n; ++i)
lhs(i) /= rhs(i);
return lhs;
}
</pre>
</blockquote>
<hr>
<p><strong><a name="UNUSED"></a><a href="tutorial.htm#UNUSED">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_EMPTY() as an unused parameter in Local Macro instantiations</p>
<blockquote>
<pre>template&lt;class base&gt;
typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&
implement_subscript_using_begin_subscript&lt;base&gt;::operator[]
( index_type
i
)
{ return base::begin()[i];
}
template&lt;class base&gt;
const typename implement_subscript_using_begin_subscript&lt;base&gt;::value_type&
implement_subscript_using_begin_subscript&lt;base&gt;::operator[]
( index_type
i
) const
{ return base::begin()[i];
}
</pre>
</blockquote>
<hr>
<p><b><a name="CAT"></a><a href="tutorial.htm#CAT">EXAMPLE:</a></b> Use BOOST_PREPROCESSOR_CAT instead of ## when necessary</p>
<blockquote>
<pre>enum
{ static_check_152 = (sizeof(int) &lt;= sizeof(long)) ? 1 : -1
};
typedef char
static_assert_152
[ static_check_152
];
</pre>
</blockquote>
<hr>
<p><b><a name="STRINGIZE"></a><a href="tutorial.htm#STRINGIZE">EXAMPLE:</a></b> Use BOOST_PREPROCESSOR_STRINGIZE instead of # whenever necessary</p>
<blockquote>
<pre>#pragma message("examples.cpp" "(" "20" ") : " "TBD!")</pre>
</blockquote>
<hr>
<p><strong><a name="ENUM_PARAMS"></a><a href="tutorial.htm#ENUM_PARAMS">EXAMPLE</a>:</strong>
Use:</p>
<ul>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT,</li>
<li> BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS,</li>
<li> BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS, or</li>
<li>BOOST_PREPROCESSOR_REPEAT, and</li>
<li> BOOST_PREPROCESSOR_COMMA_IF</li>
</ul>
<p>to avoid O(N) repetition on lists in general</p>
<blockquote>
<pre>struct make_type_list_end;
template
&lt; class T0=make_type_list_end
, class T1=make_type_list_end
, class T2=make_type_list_end
, class T3=make_type_list_end
, class T4=make_type_list_end
, class T5=make_type_list_end
, class T6=make_type_list_end
, class T7=make_type_list_end
&gt;
struct make_type_list
{
private:
enum
{ end = is_same&lt;T0,make_type_list_end&gt;::value
};
public:
typedef typename
type_if
&lt; end
, type_cons_empty
, type_cons
&lt; T0
, typename
type_inner_if
&lt; end
, type_identity&lt;end&gt;
, make_type_list
&lt; T1
, T2
, T3
, T4
, T5
, T6
, T7
&gt;
&gt;::type
&gt;
&gt;::type type;
};
</pre>
</blockquote>
<hr>
<p><strong><a name="Token Look-Up"></a><a href="tutorial.htm#Token Look-Up">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_REPEAT and a Token Look-Up Function to eliminate categorical
repetition</p>
<blockquote>
<pre>catch (bool t)
{ report_typeid(t);
report_value(t);
}
catch (char t)
{ report_typeid(t);
report_value(t);
}
catch (signed char t)
{ report_typeid(t);
report_value(t);
}
catch (unsigned char t)
{ report_typeid(t);
report_value(t);
}
catch (short t)
{ report_typeid(t);
report_value(t);
}
catch (unsigned short t)
{ report_typeid(t);
report_value(t);
}
catch (int t)
{ report_typeid(t);
report_value(t);
}
catch (unsigned int t)
{ report_typeid(t);
report_value(t);
}
catch (long t)
{ report_typeid(t);
report_value(t);
}
catch (unsigned long t)
{ report_typeid(t);
report_value(t);
}
catch (float t)
{ report_typeid(t);
report_value(t);
}
catch (double t)
{ report_typeid(t);
report_value(t);
}
catch (long double t)
{ report_typeid(t);
report_value(t);
}
</pre>
</blockquote>
<hr>
<p><strong><a name="2ND_REPEAT"></a><a href="tutorial.htm#2ND_REPEAT">EXAMPLE</a>:</strong>
Use BOOST_PREPROCESSOR_REPEAT_2ND to avoid O(N*N) repetition</p>
<blockquote>
<pre>vec()
{
}
vec(T a0)
{ (*this)[0] = a0;
}
vec(T a0, T a1)
{ (*this)[0] = a0;
(*this)[1] = a1;
}
vec(T a0, T a1, T a2)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
}
vec(T a0, T a1, T a2, T a3)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
(*this)[3] = a3;
}
vec(T a0, T a1, T a2, T a3, T a4)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
(*this)[3] = a3;
(*this)[4] = a4;
}
vec(T a0, T a1, T a2, T a3, T a4, T a5)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
(*this)[3] = a3;
(*this)[4] = a4;
(*this)[5] = a5;
}
vec(T a0, T a1, T a2, T a3, T a4, T a5, T a6)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
(*this)[3] = a3;
(*this)[4] = a4;
(*this)[5] = a5;
(*this)[6] = a6;
}
vec(T a0, T a1, T a2, T a3, T a4, T a5, T a6, T a7)
{ (*this)[0] = a0;
(*this)[1] = a1;
(*this)[2] = a2;
(*this)[3] = a3;
(*this)[4] = a4;
(*this)[5] = a5;
(*this)[6] = a6;
(*this)[7] = a7;
}
</pre>
</blockquote>
<p>
<hr>
<p><a name="IF"></a><a href="tutorial.htm#IF"><b>EXAMPLE:</b></a>
Use BOOST_PREPROCESSOR_IF to implement special case for the first element</p>
<blockquote>
<pre>false == false;
true == true;
</pre>
</blockquote>
<p>
<hr>
<p><a name="Arithmetic"></a><a href="tutorial.htm#Arithmetic"><B>EXAMPLE:</B></a> Use arithmetic, logical and comparison operations when necessary</p>
<blockquote>
<pre>S, E0, E1
E0, S, E1
E0, E1, S
BAD PARAMS FOR SPECIAL_NUMBERED_LIST! E0, E1, E2, S</pre>
</blockquote>
<hr>
<p><EFBFBD> Copyright Housemarque, Inc. 2001</p>
<p>Permission to copy, use, modify, sell and distribute this document is granted
provided this copyright notice appears in all copies. This document is provided
"as is" without express or implied warranty, and with no claim as to its suitability
for any purpose. </p>
<p>Updated: <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan --><!--webbot bot="Timestamp" endspan i-checksum="15246" -->
<p></p>
</body>
</html>

254
doc/headers.html Normal file
View File

@ -0,0 +1,254 @@
<html>
<head>
<meta content="text/html; charset=windows-1252" http-equiv="content-type">
<title>headers.html</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<base target="desc">
<style>
.ps { margin-left: 30px; }
</style>
</head>
<body>
<h4> Headers <small><a href="contents.html" target="index">[back]</a></small>
</h4>
<ul>
<li>../</li>
<li class="ps"> <a href="headers/preprocessor.html">preprocessor.hpp</a></li>
<li><a href="headers/arithmetic.html">arithmetic.hpp</a></li>
<li>arithmetic/</li>
<li class="ps"><a href="headers/arithmetic/add.html">add.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/dec.html">dec.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/div.html">div.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/inc.html">inc.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/mod.html">mod.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/mul.html">mul.hpp</a></li>
<li class="ps"><a href="headers/arithmetic/sub.html">sub.hpp</a></li>
<li><a href="headers/array.html">array.hpp</a></li>
<li>array/</li>
<li class="ps"><a href="headers/array/data.html">data.hpp</a></li>
<li class="ps"><a href="headers/array/elem.html">elem.hpp</a></li>
<li class="ps"><a href="headers/array/enum.html">enum.hpp</a></li>
<li class="ps"><a href="headers/array/insert.html">insert.hpp</a></li>
<li class="ps"><a href="headers/array/pop_back.html">pop_back.hpp</a></li>
<li class="ps"><a href="headers/array/pop_front.html">pop_front.hpp</a></li>
<li class="ps"><a href="headers/array/push_back.html">push_back.hpp</a></li>
<li class="ps"><a href="headers/array/push_front.html">push_front.hpp</a></li>
<li class="ps"><a href="headers/array/remove.html">remove.hpp</a></li>
<li class="ps"><a href="headers/array/replace.html">replace.hpp</a></li>
<li class="ps"><a href="headers/array/reverse.html">reverse.hpp</a></li>
<li class="ps"><a href="headers/array/size.html">size.hpp</a></li>
<li class="ps"><a href="headers/array/to_list.html">to_list.hpp</a></li>
<li class="ps"><a href="headers/array/to_seq.html">to_seq.hpp</a></li>
<li class="ps"><a href="headers/array/to_tuple.html">to_tuple.hpp</a></li>
<li><a href="headers/assert_msg.html">assert_msg.hpp*</a></li>
<li><a href="headers/cat.html">cat.hpp</a></li>
<li><a href="headers/comma.html">comma.hpp*</a></li>
<li><a href="headers/comma_if.html">comma_if.hpp*</a></li>
<li><a href="headers/comparison.html">comparison.hpp</a></li>
<li>comparison/</li>
<li class="ps"><a href="headers/comparison/equal.html">equal.hpp</a></li>
<li class="ps"><a href="headers/comparison/greater.html">greater.hpp</a></li>
<li class="ps"><a href="headers/comparison/greater_equal.html">greater_equal.hpp</a></li>
<li class="ps"><a href="headers/comparison/less.html">less.hpp</a></li>
<li class="ps"><a href="headers/comparison/less_equal.html">less_equal.hpp</a></li>
<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">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>
<li class="ps"><a href="headers/control/expr_if.html">expr_if.hpp</a></li>
<li class="ps"><a href="headers/control/expr_iif.html">expr_iif.hpp</a></li>
<li class="ps"><a href="headers/control/if.html">if.hpp</a></li>
<li class="ps"><a href="headers/control/iif.html">iif.hpp</a></li>
<li class="ps"><a href="headers/control/while.html">while.hpp</a></li>
<li><a href="headers/debug.html">debug.hpp</a></li>
<li>debug/</li>
<li class="ps"><a href="headers/debug/assert.html">assert.hpp</a></li>
<li class="ps"><a href="headers/debug/line.html">line.hpp</a></li>
<li><a href="headers/dec.html">dec.hpp*</a></li>
<li><a href="headers/empty.html">empty.hpp*</a></li>
<li><a href="headers/enum.html">enum.hpp*</a></li>
<li><a href="headers/enum_params.html">enum_params.hpp*</a></li>
<li><a href="headers/epwad.html">enum_params_with_a_default.hpp*</a></li>
<li><a href="headers/epwd.html">enum_params_with_defaults.hpp*</a></li>
<li><a href="headers/enum_shifted.html">enum_shifted.hpp*</a></li>
<li><a href="headers/enum_shifted_params.html">enum_shifted_params.hpp*</a></li>
<li><a href="headers/expand.html">expand.hpp*</a></li>
<li><a href="headers/expr_if.html">expr_if.hpp*</a></li>
<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>
<li><a href="headers/inc.html">inc.hpp*</a></li>
<li><a href="headers/iterate.html">iterate.hpp*</a></li>
<li><a href="headers/iteration.html">iteration.hpp</a></li>
<li>iteration/</li>
<li class="ps"><a href="headers/iteration/iterate.html">iterate.hpp</a></li>
<li class="ps"><a href="headers/iteration/local.html">local.hpp</a></li>
<li class="ps"><a href="headers/iteration/self.html">self.hpp</a></li>
<li><a href="headers/library.html">library.hpp</a></li>
<li><a href="headers/limits.html">limits.hpp*</a></li>
<li><a href="headers/list.html">list.hpp</a></li>
<li>list/</li>
<li class="ps"><a href="headers/list/adt.html">adt.hpp</a></li>
<li class="ps"><a href="headers/list/append.html">append.hpp</a></li>
<li class="ps"><a href="headers/list/at.html">at.hpp</a></li>
<li class="ps"><a href="headers/list/cat.html">cat.hpp</a></li>
<li class="ps"><a href="headers/list/enum.html">enum.hpp</a></li>
<li class="ps"><a href="headers/list/filter.html">filter.hpp</a></li>
<li class="ps"><a href="headers/list/first_n.html">first_n.hpp</a></li>
<li class="ps"><a href="headers/list/fold_left.html">fold_left.hpp</a></li>
<li class="ps"><a href="headers/list/fold_right.html">fold_right.hpp</a></li>
<li class="ps"><a href="headers/list/for_each.html">for_each.hpp</a></li>
<li class="ps"><a href="headers/list/for_each_i.html">for_each_i.hpp</a></li>
<li class="ps"><a href="headers/list/for_each_product.html">for_each_product.hpp</a></li>
<li class="ps"><a href="headers/list/rest_n.html">rest_n.hpp</a></li>
<li class="ps"><a href="headers/list/reverse.html">reverse.hpp</a></li>
<li class="ps"><a href="headers/list/size.html">size.hpp</a></li>
<li class="ps"><a href="headers/list/to_array.html">to_array.hpp</a></li>
<li class="ps"><a href="headers/list/to_seq.html">to_seq.hpp</a></li>
<li class="ps"><a href="headers/list/to_tuple.html">to_tuple.hpp</a></li>
<li class="ps"><a href="headers/list/transform.html">transform.hpp</a></li>
<li><a href="headers/logical.html">logical.hpp</a></li>
<li>logical/</li>
<li class="ps"><a href="headers/logical/and.html">and.hpp</a></li>
<li class="ps"><a href="headers/logical/bitand.html">bitand.hpp</a></li>
<li class="ps"><a href="headers/logical/bitnor.html">bitnor.hpp</a></li>
<li class="ps"><a href="headers/logical/bitor.html">bitor.hpp</a></li>
<li class="ps"><a href="headers/logical/bitxor.html">bitxor.hpp</a></li>
<li class="ps"><a href="headers/logical/bool.html">bool.hpp</a></li>
<li class="ps"><a href="headers/logical/compl.html">compl.hpp</a></li>
<li class="ps"><a href="headers/logical/nor.html">nor.hpp</a></li>
<li class="ps"><a href="headers/logical/not.html">not.hpp</a></li>
<li class="ps"><a href="headers/logical/or.html">or.hpp</a></li>
<li class="ps"><a href="headers/logical/xor.html">xor.hpp</a></li>
<li><a href="headers/max.html">max.hpp*</a></li>
<li><a href="headers/min.html">min.hpp*</a></li>
<li><a href="headers/punctuation.html">punctuation.hpp</a></li>
<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>
<li><a href="headers/repeat_from_to.html">repeat_from_to.hpp*</a></li>
<li><a href="headers/repeat_from_to_2nd.html">repeat_from_to_2nd.hpp*</a></li>
<li><a href="headers/repeat_from_to_3rd.html">repeat_from_to_3rd.hpp*</a></li>
<li><a href="headers/repetition.html">repetition.hpp</a></li>
<li>repetition/</li>
<li class="ps"><a href="headers/repetition/deduce_r.html">deduce_r.hpp</a></li>
<li class="ps"><a href="headers/repetition/deduce_z.html">deduce_z.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum.html">enum.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_binary_params.html">enum_binary_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_params.html">enum_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/epwad.html">enum_params_with_a_default.hpp</a></li>
<li class="ps"><a href="headers/repetition/epwd.html">enum_params_with_defaults.hpp</a></li>
<li class="ps"><a href="headers/repetition/esbp.html">enum_shifted_binary_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_shifted_params.html">enum_shifted_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_shifted.html">enum_shifted.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_trailing.html">enum_trailing.hpp</a></li>
<li class="ps"><a href="headers/repetition/etbp.html">enum_trailing_binary_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/enum_trailing_params.html">enum_trailing_params.hpp</a></li>
<li class="ps"><a href="headers/repetition/for.html">for.hpp</a></li>
<li class="ps"><a href="headers/repetition/repeat.html">repeat.hpp</a></li>
<li class="ps"><a href="headers/repetition/repeat_from_to.html">repeat_from_to.hpp</a></li>
<li><a href="headers/selection.html">selection.hpp</a></li>
<li>selection/</li>
<li class="ps"><a href="headers/selection/max.html">max.hpp</a></li>
<li class="ps"><a href="headers/selection/min.html">min.hpp</a></li>
<li><a href="headers/seq.html">seq.hpp</a></li>
<li>seq/</li>
<li class="ps"><a href="headers/seq/cat.html">cat.hpp</a></li>
<li class="ps"><a href="headers/seq/elem.html">elem.hpp</a></li>
<li class="ps"><a href="headers/seq/enum.html">enum.hpp</a></li>
<li class="ps"><a href="headers/seq/filter.html">filter.hpp</a></li>
<li class="ps"><a href="headers/seq/first_n.html">first_n.hpp</a></li>
<li class="ps"><a href="headers/seq/fold_left.html">fold_left.hpp</a></li>
<li class="ps"><a href="headers/seq/fold_right.html">fold_right.hpp</a></li>
<li class="ps"><a href="headers/seq/for_each.html">for_each.hpp</a></li>
<li class="ps"><a href="headers/seq/for_each_i.html">for_each_i.hpp</a></li>
<li class="ps"><a href="headers/seq/for_each_product.html">for_each_product.hpp</a></li>
<li class="ps"><a href="headers/seq/insert.html">insert.hpp</a></li>
<li class="ps"><a href="headers/seq/pop_back.html">pop_back.hpp</a></li>
<li class="ps"><a href="headers/seq/pop_front.html">pop_front.hpp</a></li>
<li class="ps"><a href="headers/seq/push_back.html">push_back.hpp</a></li>
<li class="ps"><a href="headers/seq/push_front.html">push_front.hpp</a></li>
<li class="ps"><a href="headers/seq/remove.html">remove.hpp</a></li>
<li class="ps"><a href="headers/seq/replace.html">replace.hpp</a></li>
<li class="ps"><a href="headers/seq/rest_n.html">rest_n.hpp</a></li>
<li class="ps"><a href="headers/seq/reverse.html">reverse.hpp</a></li>
<li class="ps"><a href="headers/seq/seq.html">seq.hpp</a></li>
<li class="ps"><a href="headers/seq/size.html">size.hpp</a></li>
<li class="ps"><a href="headers/seq/subseq.html">subseq.hpp</a></li>
<li class="ps"><a href="headers/seq/to_array.html">to_array.hpp</a></li>
<li class="ps"><a href="headers/seq/to_list.html">to_list.hpp</a></li>
<li class="ps"><a href="headers/seq/to_tuple.html">to_tuple.hpp</a></li>
<li class="ps"><a href="headers/seq/transform.html">transform.hpp</a></li>
<li class="ps"><a href="headers/seq/variadic_seq_to_seq.html">variadic_seq_to_seq.hpp</a></li>
<li><a href="headers/slot.html">slot.hpp</a></li>
<li>slot/</li>
<li class="ps"><a href="headers/slot/counter.html">counter.hpp</a></li>
<li class="ps"><a href="headers/slot/slot.html">slot.hpp</a></li>
<li><a href="headers/tuple.html">tuple.hpp</a></li>
<li>tuple/</li>
<li class="ps"><a href="headers/tuple/eat.html">eat.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/elem.html">elem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/enum.html">enum.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/insert.html">insert.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/pop_back.html">pop_back.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/pop_front.html">pop_front.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/push_back.html">push_back.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/push_front.html">push_front.hpp</a>
<a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/rem.html">rem.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/remove.html">remove.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/replace.html">replace.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/reverse.html">reverse.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/size.html">size.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/to_array.html">to_array.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/to_list.html">to_list.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/tuple/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li><a href="headers/stringize.html">stringize.hpp</a></li>
<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>
<li class="ps"><a href="headers/variadic/to_list.html">to_list.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/variadic/to_seq.html">to_seq.hpp</a> <a href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li class="ps"><a href="headers/variadic/to_tuple.html">to_tuple.hpp</a> <a
href="topics/variadic_macros.html#VNotation">(v)</a></li>
<li><a href="headers/while.html">while.hpp*</a></li>
<li><a href="headers/wstringize.html">wstringize.hpp</a></li>
</ul>
<!--
<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)-->
</body>
</html>

View File

@ -0,0 +1,36 @@
<html>
<head>
<title>arithmetic.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic.hpp</b> includes the headers in the <i>arithmetic</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="arithmetic/add.html">&lt;boost/preprocessor/arithmetic/add.hpp&gt;</a></li>
<li><a href="arithmetic/dec.html">&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</a></li>
<li><a href="arithmetic/div.html">&lt;boost/preprocessor/arithmetic/div.hpp&gt;</a></li>
<li><a href="arithmetic/inc.html">&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</a></li>
<li><a href="arithmetic/mod.html">&lt;boost/preprocessor/arithmetic/mod.hpp&gt;</a></li>
<li><a href="arithmetic/mul.html">&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</a></li>
<li><a href="arithmetic/sub.html">&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>arithmetic/add.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/add.hpp</b> header defines macros for addition.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/add.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/add.html">BOOST_PP_ADD</a></li>
<li><a href="../../ref/add_d.html">BOOST_PP_ADD_D</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>arithmetic/dec.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/dec.hpp</b> header defines a decrementation macro.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/dec.html">BOOST_PP_DEC</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>arithmetic/div.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/div.hpp</b> header defines macros for division.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/div.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/div.html">BOOST_PP_DIV</a></li>
<li><a href="../../ref/div_d.html">BOOST_PP_DIV_D</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>arithmetic/inc.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/inc.hpp</b> header defines an incrementation macro.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/inc.html">BOOST_PP_INC</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>arithmetic/mod.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/mod.hpp</b> header defines macros for modulus.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/mod.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/mod.html">BOOST_PP_MOD</a></li>
<li><a href="../../ref/mod_d.html">BOOST_PP_MOD_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>arithmetic/mul.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/mul.hpp</b> header defines macros for multiplication.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/mul.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/mul.html">BOOST_PP_MUL</a></li>
<li><a href="../../ref/mul_d.html">BOOST_PP_MUL_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>arithmetic/sub.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>arithmetic/sub.hpp</b> header defines macros for subtraction.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/arithmetic/sub.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/sub.html">BOOST_PP_SUB</a></li>
<li><a href="../../ref/sub_d.html">BOOST_PP_SUB_D</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>

43
doc/headers/array.html Normal file
View File

@ -0,0 +1,43 @@
<html>
<head>
<title>array.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array.hpp</b> includes the headers in the <i>array</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="array/data.html">&lt;boost/preprocessor/array/data.hpp&gt;</a></li>
<li><a href="array/elem.html">&lt;boost/preprocessor/array/elem.hpp&gt;</a></li>
<li><a href="array/enum.html">&lt;boost/preprocessor/array/enum.hpp&gt;</a></li>
<li><a href="array/insert.html">&lt;boost/preprocessor/array/insert.hpp&gt;</a></li>
<li><a href="array/pop_back.html">&lt;boost/preprocessor/array/pop_back.hpp&gt;</a></li>
<li><a href="array/pop_front.html">&lt;boost/preprocessor/array/pop_front.hpp&gt;</a></li>
<li><a href="array/push_back.html">&lt;boost/preprocessor/array/push_back.hpp&gt;</a></li>
<li><a href="array/push_front.html">&lt;boost/preprocessor/array/push_front.hpp&gt;</a></li>
<li><a href="array/remove.html">&lt;boost/preprocessor/array/remove.hpp&gt;</a></li>
<li><a href="array/replace.html">&lt;boost/preprocessor/array/replace.hpp&gt;</a></li>
<li><a href="array/reverse.html">&lt;boost/preprocessor/array/reverse.hpp&gt;</a></li>
<li><a href="array/size.html">&lt;boost/preprocessor/array/size.hpp&gt;</a></li>
<li><a href="array/to_list.html">&lt;boost/preprocessor/array/to_list.hpp&gt;</a></li>
<li><a href="array/to_seq.html">&lt;boost/preprocessor/array/to_seq.hpp&gt;</a></li>
<li><a href="array/to_tuple.html">&lt;boost/preprocessor/array/to_tuple.hpp&gt;</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/data.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/data.hpp</b> header defines a macro to extract the <i>tuple</i> data from an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/data.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_data.html">BOOST_PP_ARRAY_DATA</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/elem.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/elem.hpp</b> header defines a macro to extract elements from an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/elem.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_elem.html">BOOST_PP_ARRAY_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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/enum.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/enum.hpp</b> header
defines a macro to convert an <i>array</i> to its comma-separated elements. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/enum.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_enum.html">BOOST_PP_ARRAY_ENUM</a></li>
</ul>
<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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>array/insert.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/insert.hpp</b> header defines macros to insert an element into an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/insert.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_insert.html">BOOST_PP_ARRAY_INSERT</a></li>
<li><a href="../../ref/array_insert_d.html">BOOST_PP_ARRAY_INSERT_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>array/pop_back.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/pop_back.hpp</b> header defines macros to pop an element from the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/pop_back.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_pop_back.html">BOOST_PP_ARRAY_POP_BACK</a></li>
<li><a href="../../ref/array_pop_back_z.html">BOOST_PP_ARRAY_POP_BACK_Z</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>array/pop_front.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/pop_front.hpp</b> header defines macros to pop an element from the beginning of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/pop_front.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_pop_front.html">BOOST_PP_ARRAY_POP_FRONT</a></li>
<li><a href="../../ref/array_pop_front_z.html">BOOST_PP_ARRAY_POP_FRONT_Z</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/push_back.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/push_back.hpp</b> header defines a macro to append an element to the end of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/push_back.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_push_back.html">BOOST_PP_ARRAY_PUSH_BACK</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/push_front.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/push_front.hpp</b> header defines a macro to append an element to the beginning of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/push_front.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_push_front.html">BOOST_PP_ARRAY_PUSH_FRONT</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>array/remove.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/remove.hpp</b> header defines macros to remove an element from an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/remove.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_remove.html">BOOST_PP_ARRAY_REMOVE</a></li>
<li><a href="../../ref/array_remove_d.html">BOOST_PP_ARRAY_REMOVE_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>array/replace.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/replace.hpp</b> header defines macros to replace an element in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/replace.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_replace.html">BOOST_PP_ARRAY_REPLACE</a></li>
<li><a href="../../ref/array_replace_d.html">BOOST_PP_ARRAY_REPLACE_D</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/reverse.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/reverse.hpp</b> header defines macros to reverse the elements in an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/reverse.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_reverse.html">BOOST_PP_ARRAY_REVERSE</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>array/size.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>array/size.hpp</b> header defines a macro that extracts the size of an <i>array</i>.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/array/size.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_size.html">BOOST_PP_ARRAY_SIZE</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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_list.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_list.hpp</b> header
defines a macro that converts an <i>array</i> to a <i>list</i>. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_list.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<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>
<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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_seq.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_seq.hpp</b> header
defines a macro that converts an <i>array</i> to a <i>seq.</i> </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_seq.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_to_seq.html">BOOST_PP_ARRAY_TO_SEQ</a></li>
</ul>
<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>

View File

@ -0,0 +1,24 @@
<html>
<head>
<title>array/to_tuple.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;"> The <b>array/to_tuple.hpp</b> header
defines a macro that converts an <i>array </i>to a <i>tuple</i>. </div>
<h4>Usage</h4>
<div class="code"> #include <b>&lt;boost/preprocessor/array/to_tuple.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/array_to_tuple.html">BOOST_PP_ARRAY_TO_TUPLE</a></li>
</ul>
<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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>assert_msg.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>assert_msg.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/assert_msg.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</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>

30
doc/headers/cat.html Normal file
View File

@ -0,0 +1,30 @@
<html>
<head>
<title>cat.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>cat.hpp</b> header defines a concatenation macro.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/cat.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../ref/cat.html">BOOST_PP_CAT</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>

31
doc/headers/comma.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comma.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comma.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comma.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="punctuation/comma.html">&lt;boost/preprocessor/punctuation/comma.hpp&gt;</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>

31
doc/headers/comma_if.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comma_if.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comma_if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comma_if.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="punctuation/comma_if.html">&lt;boost/preprocessor/punctuation/comma_if.hpp&gt;</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>

View File

@ -0,0 +1,35 @@
<html>
<head>
<title>comparison.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison.hpp</b> includes the headers in the <i>comparison</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="comparison/equal.html">&lt;boost/preprocessor/comparison/equal.hpp&gt;</a></li>
<li><a href="comparison/greater.html">&lt;boost/preprocessor/comparison/greater.hpp&gt;</a></li>
<li><a href="comparison/greater_equal.html">&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</a></li>
<li><a href="comparison/less.html">&lt;boost/preprocessor/comparison/less.hpp&gt;</a></li>
<li><a href="comparison/less_equal.html">&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</a></li>
<li><a href="comparison/not_equal.html">&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/equal.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/equal.hpp</b> header defines macros that compare for equality.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/equal.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/equal.html">BOOST_PP_EQUAL</a></li>
<li><a href="../../ref/equal_d.html">BOOST_PP_EQUAL_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/greater.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/greater.hpp</b> header defines macros that compare for greater magnitude.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/greater.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/greater.html">BOOST_PP_GREATER</a></li>
<li><a href="../../ref/greater_d.html">BOOST_PP_GREATER_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/greater_equal.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/greater_equal.hpp</b> header defines macros that compare for equality or greater magnitude.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/greater_equal.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/greater_equal.html">BOOST_PP_GREATER_EQUAL</a></li>
<li><a href="../../ref/greater_equal_d.html">BOOST_PP_GREATER_EQUAL_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/less.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/less.hpp</b> header defines macros that compare for lesser magnitude.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/less.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/less.html">BOOST_PP_LESS</a></li>
<li><a href="../../ref/less_d.html">BOOST_PP_LESS_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/less_equal.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/less_equal.hpp</b> header defines macros that compare for equality or lesser magnitude.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/less_equal.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/less_equal.html">BOOST_PP_LESS_EQUAL</a></li>
<li><a href="../../ref/less_equal_d.html">BOOST_PP_LESS_EQUAL_D</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>comparison/not_equal.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>comparison/not_equal.hpp</b> header defines macros that compare for equality.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/comparison/not_equal.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/not_equal.html">BOOST_PP_NOT_EQUAL</a></li>
<li><a href="../../ref/not_equal_d.html">BOOST_PP_NOT_EQUAL_D</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>

View File

@ -0,0 +1,44 @@
<html>
<head>
<title>config/limits.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>config/limits.hpp</b> header defines various library limits.
</div>
<h4>
Usage
</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/config/limits.hpp&gt;</b>
</div>
<h4>
Contents
</h4>
<ul>
<li><a href="../../ref/limit_dim.html">BOOST_PP_LIMIT_DIM</a></li>
<li><a href="../../ref/limit_for.html">BOOST_PP_LIMIT_FOR</a></li>
<li><a href="../../ref/limit_iteration.html">BOOST_PP_LIMIT_ITERATION</a></li>
<li><a href="../../ref/limit_iteration_dim.html">BOOST_PP_LIMIT_ITERATION_DIM</a></li>
<li><a href="../../ref/limit_mag.html">BOOST_PP_LIMIT_MAG</a></li>
<li><a href="../../ref/limit_repeat.html">BOOST_PP_LIMIT_REPEAT</a></li>
<li><a href="../../ref/limit_seq.html">BOOST_PP_LIMIT_SEQ</a></li>
<li><a href="../../ref/limit_slot_count.html">BOOST_PP_LIMIT_SLOT_COUNT</a></li>
<li><a href="../../ref/limit_slot_sig.html">BOOST_PP_LIMIT_SLOT_SIG</a></li>
<li><a href="../../ref/limit_tuple.html">BOOST_PP_LIMIT_TUPLE</a></li>
<li><a href="../../ref/limit_while.html">BOOST_PP_LIMIT_WHILE</a></li>
<li><a href="../../ref/limit_variadic.html">BOOST_PP_LIMIT_VARIADIC</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>

View File

@ -0,0 +1,35 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<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>&lt;boost/preprocessor/config/config.hpp&gt;</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>

35
doc/headers/control.html Normal file
View File

@ -0,0 +1,35 @@
<html>
<head>
<title>control.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control.hpp</b> includes the headers in the <i>control</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="control/deduce_d.html">&lt;boost/preprocessor/control/deduce_d.hpp&gt;</a></li>
<li><a href="control/expr_if.html">&lt;boost/preprocessor/control/expr_if.hpp&gt;</a></li>
<li><a href="control/expr_iif.html">&lt;boost/preprocessor/control/expr_iif.hpp&gt;</a></li>
<li><a href="control/if.html">&lt;boost/preprocessor/control/if.hpp&gt;</a></li>
<li><a href="control/iif.html">&lt;boost/preprocessor/control/iif.hpp&gt;</a></li>
<li><a href="control/while.html">&lt;boost/preprocessor/control/while.hpp&gt;</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>control/deduce_d.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/deduce_d.hpp</b> header defines a macro to manually deduce the current state of the <b>BOOST_PP_WHILE</b> construct.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/deduce_d.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/deduce_d.html">BOOST_PP_DEDUCE_D</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>control/expr_if.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/expr_if.hpp</b> header defines a macro that expands to an expression selectively.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/expr_if.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/expr_if.html">BOOST_PP_EXPR_IF</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>control/expr_iif.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/expr_iif.hpp</b> header defines a macro that expands to an expression selectively.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/expr_iif.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/expr_iif.html">BOOST_PP_EXPR_IIF</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>control/if.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/if.hpp</b> header defines a macro that chooses between two alternatives.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/if.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/if.html">BOOST_PP_IF</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>control/iif.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/iif.hpp</b> header defines a macro that chooses between two alternatives.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/iif.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/iif.html">BOOST_PP_IIF</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>control/while.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>control/while.hpp</b> header defines a looping contruct.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/control/while.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/while.html">BOOST_PP_WHILE</a></li>
<li><a href="../../ref/while_d.html">BOOST_PP_WHILE_<i>d</i></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>

31
doc/headers/debug.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>debug.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>debug.hpp</b> includes the headers in the <i>debug</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/debug.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="debug/assert.html">&lt;boost/preprocessor/debug/assert.hpp&gt;</a></li>
<li><a href="debug/line.html">&lt;boost/preprocessor/debug/line.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>debug/assert.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>debug/assert.hpp</b> header defines macros for preprocessing-time assertions.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/debug/assert.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/assert.html">BOOST_PP_ASSERT</a></li>
<li><a href="../../ref/assert_msg.html">BOOST_PP_ASSERT_MSG</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>debug/line.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>debug/line.hpp</b> header defines macros for preprocessing-time assertions.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/debug/line.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/line.html">BOOST_PP_LINE</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>

31
doc/headers/dec.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>dec.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>dec.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/dec.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="arithmetic/dec.html">&lt;boost/preprocessor/arithmetic/dec.hpp&gt;</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>

31
doc/headers/empty.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>empty.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>empty.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/empty.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="facilities/empty.html">&lt;boost/preprocessor/facilities/empty.hpp&gt;</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>

31
doc/headers/enum.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/enum.html">&lt;boost/preprocessor/repetition/enum.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum_params.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum_params.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum_params.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/enum_params.html">&lt;boost/preprocessor/repetition/enum_params.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum_shifted.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum_shifted.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum_shifted.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/enum_shifted.html">&lt;boost/preprocessor/repetition/enum_shifted.hpp&gt;</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>

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum_shifted_params.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum_shifted_params.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum_shifted_params.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/enum_shifted_params.html">&lt;boost/preprocessor/repetition/enum_shifted_params.hpp&gt;</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>

31
doc/headers/epwad.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum_params_with_a_default.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum_params_with_a_default.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum_params_with_a_default.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/epwad.html">&lt;boost/preprocessor/repetition/enum_params_with_a_default.hpp&gt;</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>

31
doc/headers/epwd.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>enum_params_with_defaults.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>enum_params_with_defaults.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/enum_params_with_defaults.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/epwd.html">&lt;boost/preprocessor/repetition/enum_params_with_defaults.hpp&gt;</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>

31
doc/headers/expand.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>expand.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>expand.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/expand.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</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>

31
doc/headers/expr_if.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>expr_if.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>expr_if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/expr_if.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="control/expr_if.html">&lt;boost/preprocessor/control/expr_if.hpp&gt;</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>

View File

@ -0,0 +1,35 @@
<html>
<head>
<title>facilities.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities.hpp</b> includes the headers in the <i>facilities</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="facilities/apply.html">&lt;boost/preprocessor/facilities/apply.hpp&gt;</a></li>
<li><a href="facilities/empty.html">&lt;boost/preprocessor/facilities/empty.hpp&gt;</a></li>
<li><a href="facilities/check_empty.html">&lt;boost/preprocessor/facilities/check_empty.hpp&gt;</a> <a href="../topics/variadic_macros.html#VNotation" target="_self">(v)</a></li>
<li><a href="facilities/expand.html">&lt;boost/preprocessor/facilities/expand.hpp&gt;</a></li>
<li><a href="facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</a></li>
<li><a href="facilities/intercept.html">&lt;boost/preprocessor/facilities/intercept.hpp&gt;</a></li>
<li><a href="facilities/overload.html">&lt;boost/preprocessor/facilities/overload.hpp&gt;</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 <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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>facilities/apply.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/apply.hpp</b> header defines facilities that abstract the difference between an argument and nothing.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/apply.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/apply.html">BOOST_PP_APPLY</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>

View 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>&lt;boost/preprocessor/facilities/check_empty.hpp&gt;</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>facilities/empty.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/empty.hpp</b> header defines a nullary macro that expands to nothing.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/empty.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/empty.html">BOOST_PP_EMPTY</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>facilities/expand.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/expand.hpp</b> header defines a macro that causes double expansion.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/expand.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/expand.html">BOOST_PP_EXPAND</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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>facilities/identity.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
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">
#include <b>&lt;boost/preprocessor/facilities/identity.hpp&gt;</b>
</div>
<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
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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>facilities/intercept.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/intercept.hpp</b> header defines a utility macro to intercept a numeric concatenation.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/intercept.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/intercept.html">BOOST_PP_INTERCEPT</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>

View File

@ -0,0 +1,28 @@
<html>
<head>
<title>facilities/overload.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>facilities/overload.hpp</b> header defines variadic macros that overload non-variadic macros to accept different numbers of parameters.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/facilities/overload.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/overload.html">BOOST_PP_OVERLOAD</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 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>

View 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>&lt;boost/preprocessor/facilities/va_opt.hpp&gt;</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>

31
doc/headers/for.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>for.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>for.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/for.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="repetition/for.html">&lt;boost/preprocessor/repetition/for.hpp&gt;</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>

31
doc/headers/identity.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>identity.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>identity.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/identity.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="facilities/identity.html">&lt;boost/preprocessor/facilities/identity.hpp&gt;</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>

31
doc/headers/if.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>if.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>if.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/if.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="control/if.html">&lt;boost/preprocessor/control/if.hpp&gt;</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>

31
doc/headers/inc.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>inc.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>inc.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/inc.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="arithmetic/inc.html">&lt;boost/preprocessor/arithmetic/inc.hpp&gt;</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>

31
doc/headers/iterate.html Normal file
View File

@ -0,0 +1,31 @@
<html>
<head>
<title>iterate.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>iterate.hpp</b> is a jumper header for backwards compatibility.&nbsp;
This header is deprecated.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/iterate.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</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>

View File

@ -0,0 +1,32 @@
<html>
<head>
<title>iteration.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>iteration.hpp</b> includes the headers in the <i>iteration</i> folder.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/iteration.hpp&gt;</b>
</div>
<h4>Includes</h4>
<ul>
<li><a href="iteration/iterate.html">&lt;boost/preprocessor/iteration/iterate.hpp&gt;</a></li>
<li><a href="iteration/local.html">&lt;boost/preprocessor/iteration/local.hpp&gt;</a></li>
<li><a href="iteration/self.html">&lt;boost/preprocessor/iteration/self.hpp&gt;</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>

View File

@ -0,0 +1,43 @@
<html>
<head>
<title>iteration/iterate.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>iteration/iterate.hpp</b> header defines a macros to interface with the <i>file-iteration</i> mechanism.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/iteration/iterate.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/frame_finish.html">BOOST_PP_FRAME_FINISH</a></li>
<li><a href="../../ref/frame_flags.html">BOOST_PP_FRAME_FLAGS</a></li>
<li><a href="../../ref/frame_iteration.html">BOOST_PP_FRAME_ITERATION</a></li>
<li><a href="../../ref/frame_start.html">BOOST_PP_FRAME_START</a></li>
<li><a href="../../ref/iterate.html">BOOST_PP_ITERATE</a></li>
<li><a href="../../ref/iteration.html">BOOST_PP_ITERATION</a></li>
<li><a href="../../ref/iteration_depth.html">BOOST_PP_ITERATION_DEPTH</a></li>
<li><a href="../../ref/iteration_finish.html">BOOST_PP_ITERATION_FINISH</a></li>
<li><a href="../../ref/iteration_flags.html">BOOST_PP_ITERATION_FLAGS</a></li>
<li><a href="../../ref/iteration_start.html">BOOST_PP_ITERATION_START</a></li>
<li><a href="../../ref/relative_finish.html">BOOST_PP_RELATIVE_FINISH</a></li>
<li><a href="../../ref/relative_flags.html">BOOST_PP_RELATIVE_FLAGS</a></li>
<li><a href="../../ref/relative_iteration.html">BOOST_PP_RELATIVE_ITERATION</a></li>
<li><a href="../../ref/relative_start.html">BOOST_PP_RELATIVE_START</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>iteration/local.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>iteration/local.hpp</b> header defines a macro to interface with the <i>local-iteration</i> mechanism.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/iteration/local.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/local_iterate.html">BOOST_PP_LOCAL_ITERATE</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>

View File

@ -0,0 +1,30 @@
<html>
<head>
<title>iteration/self.hpp</title>
<link rel="stylesheet" type="text/css" href="../../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>iteration/self.hpp</b> header defines a macro to facilitate self-inclusion.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/iteration/self.hpp&gt;</b>
</div>
<h4>Contents</h4>
<ul>
<li><a href="../../ref/include_self.html">BOOST_PP_INCLUDE_SELF</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>

26
doc/headers/library.html Normal file
View File

@ -0,0 +1,26 @@
<html>
<head>
<title>library.hpp</title>
<link rel="stylesheet" type="text/css" href="../styles.css">
</head>
<body>
<div style="margin-left: 0px;">
The <b>library.hpp</b> includes the entire library.
</div>
<h4>Usage</h4>
<div class="code">
#include <b>&lt;boost/preprocessor/library.hpp&gt;</b>
</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>

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