Compare commits

...

797 Commits

Author SHA1 Message Date
Peter Dimov cd1b1bd039 Update ci.yml 2025-06-09 03:08:24 +03:00
Peter Dimov 849e8e91fc Merge pull request #56 from grafikrobot/modular
Add modular library level build file.
2025-05-02 19:15:21 +03:00
Rene Rivera cd44c911d7 Move project global include to target local include. 2025-04-07 20:56:59 -05:00
Rene Rivera b64ec9dbc7 Sync from upstream. 2025-04-04 21:39:18 -05:00
Peter Dimov d899a718f1 Merge pull request #44 from marcoffee/fix-e129-e193
Fix references to parameters e129 and e193
2024-12-28 16:37:31 +02:00
Peter Dimov 918ff83c02 Update ci.yml 2024-12-28 16:09:52 +02:00
Peter Dimov f9ada379f2 Apply Node20 workaround 2024-12-28 15:35:54 +02:00
Peter Dimov 910e57e789 Update ci.yml 2024-12-28 15:33:59 +02:00
Rene Rivera 0d2a85b3de Move inter-lib dependencies to a project variable and into the build targets. 2024-07-23 22:34:22 -05:00
Rene Rivera c62822b6b5 Update copyright dates. 2024-07-20 22:52:03 -05:00
Rene Rivera d5e87381fe Bump B2 require to 5.2 2024-06-14 11:33:56 -05:00
Rene Rivera 4cef4160fa Add requires-b2 check to top-level build file. 2024-05-05 09:00:01 -05:00
René Ferdinand Rivera Morell bf702eb1fd Merge branch 'boostorg:develop' into modular 2024-02-04 12:21:04 -06:00
Peter Dimov c4ea7e40d3 Update test/CMakeLists.txt 2024-02-04 19:09:41 +02:00
Peter Dimov fb8ebc8b42 Merge branch 'modular-location-independent' of https://github.com/grafikrobot/boostorg.preprocessor into feature/pr-57 2024-02-04 19:07:42 +02:00
Peter Dimov 3f3f1e070a Disable __VA_OPT__ for Clang 8 as well 2024-02-04 18:48:22 +02:00
Peter Dimov ec8d33c4a0 Update ci.yml 2024-02-04 18:21:57 +02:00
Rene Rivera a3d0db9305 Avoid references to root project. 2024-02-04 09:56:35 -06:00
Rene Rivera a475d97e89 Add modular library level build file. 2024-02-04 09:47:19 -06:00
Peter Dimov 667e87b339 Change C test names to not conflict with the C++ ones 2022-08-16 20:59:52 +03:00
Peter Dimov e919b652af Disable __VA_OPT__ on g++ 8/9 in c++2a mode, as vaopt.cpp fails 2022-08-16 19:09:04 +03:00
Peter Dimov 108a948323 Add .github/workflows 2022-08-16 11:31:06 +03:00
Peter Dimov eacc296fa5 Merge branch 'master' into develop 2022-08-16 11:27:43 +03:00
Marco Ribeiro f29be910a0 Fix references to parameters e129 and e193 2022-02-07 09:55:43 -03:00
Edward Diener d4e82d7d3f Merge branch 'develop' 2021-06-27 13:24:38 -04:00
Peter Dimov 69614bb1da Fix CMake tests in .travis.yml 2021-06-10 16:37:10 +03:00
Peter Dimov 24abbdc906 Update CMakeLists.txt 2021-06-10 02:09:03 +03:00
Peter Dimov 45178c3cc5 Merge branch 'master' into develop 2021-06-10 02:07:17 +03:00
Edward Diener 93b896c932 Corrected cmake tests 2021-05-29 08:59:36 -04:00
Edward Diener 229f654b59 Merge branch 'develop' 2021-02-15 16:07:36 -05:00
Edward Diener 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
Edward Diener d8471d6526 Merge pull request #36 from sdarwin/drone
Drone config
2021-01-13 12:42:59 -05:00
sdarwin bee33b0117 add drone config [ci skip] 2021-01-13 17:09:26 +00:00
Edward Diener b49e14231f Merge branch 'develop' 2020-12-29 16:26:32 -05:00
Edward Diener 5289c50299 Update meta information 2020-12-28 10:15:43 -05:00
Edward Diener 5e17804af2 Merge branch 'develop' 2020-10-25 06:16:15 -04:00
Edward Diener 15dcb92ebf Revert "Chyange number of jobs to use $nproc"
This reverts commit 112673238a.
2020-10-25 06:15:04 -04:00
Edward Diener ae5e475169 Merge branch 'develop' 2020-10-24 20:35:07 -04:00
Edward Diener 112673238a Chyange number of jobs to use $nproc 2020-10-24 20:33:54 -04:00
Edward Diener bff73def85 Remove preprocessor limits CI testing 2020-09-25 12:47:54 -04:00
Edward Diener 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
Edward Diener e4186a6df1 Updated appveyor tests 2020-09-22 19:33:56 -04:00
Edward Diener 4a274cbe86 Corrected msvc-14.0 setup 2020-09-22 13:24:12 -04:00
Edward Diener 7bed5072e4 Update on config.hpp so we are not redefining a defined macro. 2020-09-22 00:30:33 -04:00
Edward Diener b3f95b899f More individual travis ci preprocessor limits tests. 2020-09-21 18:39:06 -04:00
Edward Diener 8f937e431e More individual appveyor preprocessor limits tests. 2020-09-20 17:26:49 -04:00
Edward Diener 879e876d45 Add address-model for limits build in Travis CI 2020-09-20 06:15:41 -04:00
Edward Diener 1a2e813fcb Corrected Travis CI syntax 2020-09-20 05:38:29 -04:00
Edward Diener 5a30bc472d Updated Appveyor setup. 2020-09-20 00:52:01 -04:00
Edward Diener d12d2d9a3a Updated .yml files 2020-09-19 23:02:30 -04:00
Edward Diener 2ab48feed5 Corrected syntax 2020-09-19 19:46:58 -04:00
Edward Diener 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
Edward Diener cac5e3e2ef Rearrangement of links and better explanation of variadic macro support. 2020-09-19 09:14:26 -04:00
Edward Diener 4b1d674a17 Updated title page specifying assumption of variadic macro support. 2020-09-19 07:59:43 -04:00
Edward Diener 9fcd0a289a Upgrade docs to say that variadic macros must be supported by the compiler. 2020-09-19 02:24:44 -04:00
Edward Diener 5fd12d32d4 Assume variadic macro support. 2020-09-17 18:25:36 -04:00
Edward Diener 8288ce7575 Updated limitations docs. 2020-09-14 18:26:49 -04:00
Edward Diener ae836b12e4 Updated appveyor which protects b2 parameter by putting it within quote marks. 2020-09-14 15:43:10 -04:00
Edward Diener fe22f14954 Fixed check by not omitting the 0 check. 2020-09-04 17:38:08 -04:00
Edward Diener 322e4266fb Reinstalled Intel on Windows fix fgor 17.0 on up. 2020-09-02 04:14:49 -04:00
Edward Diener f74e04f827 Fixed tests for non-strict compilers. 2020-09-02 01:37:00 -04:00
Edward Diener 1ace1d3806 Fixed syntax error of a missing #endif 2020-09-01 21:08:13 -04:00
Edward Diener ed066d3c81 Further separation to strict and non-strict implementations in variadic implementations. 2020-09-01 19:31:41 -04:00
Edward Diener 96e994a25a Further separation to strict and non-strict implementations in tuple implementations. 2020-09-01 19:19:23 -04:00
Edward Diener ac553f44fb Further separation to strict and non-strict implementations in seq implementations. 2020-09-01 16:03:28 -04:00
Edward Diener b93e99332b Further separation to strict and non-strict implementations in logical and repetition implementations. 2020-09-01 08:30:03 -04:00
Edward Diener 001d109eab Further separation to strict and non-strict implementations in list implementations. 2020-09-01 02:50:29 -04:00
Edward Diener fedfdc2f32 Further separation to strict and non-strict implementations. 2020-09-01 00:35:19 -04:00
Edward Diener 775f9eb24e Further separation to strict and non-strict implementations. 2020-08-31 21:08:44 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener 721ef44e79 Revert arithmetic changes to original for msvc default preprocessor. 2020-08-31 10:55:17 -04:00
Edward Diener 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
Edward Diener d49db1ef09 Testing preprocessor limits in CI 2020-08-28 14:37:49 -04:00
Edward Diener 92ac085edf Updated for new VC++ preprocessor, explicit tests, address model, and cxxstd. 2020-08-28 01:00:37 -04:00
Edward Diener fe67cda385 Create explicit tests for the limitation tests. 2020-08-28 00:59:47 -04:00
Edward Diener a1303d0763 Fixed erroneous extra #endif 2020-08-27 01:35:33 -04:00
Edward Diener 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
Edward Diener b0a0bb281c Reinstituted a test. 2020-08-26 21:51:08 -04:00
Edward Diener 661aa5c36e Cleanmer variadic size implementation. 2020-08-26 21:49:21 -04:00
Edward Diener a9ed92efbd Updates for empty variadic data. 2020-08-26 17:47:07 -04:00
Edward Diener f977ee0cd9 Updated the docs for limitations. 2020-08-23 20:12:06 -04:00
Edward Diener 5d70c1fc7b Corrected limit. Added BOOST_PP_IS_STANDARD macro. Updated variadic tests. 2020-08-23 20:08:38 -04:00
Edward Diener 1cf82f9928 Separate variadic and tuple limits so that variadic limits can be greater. 2020-08-17 21:22:13 -04:00
Edward Diener 59cdb3e5db Updated limits and corrected deduce_r. 2020-08-16 11:20:25 -04:00
Edward Diener 2c20e742a1 Merge branch 'develop' into master 2020-08-14 19:42:33 -04:00
Edward Diener 4afae94309 Updated tests for clang 2020-08-14 19:38:55 -04:00
Edward Diener 44a4e07994 Fix non-variadic tuple elem access. 2020-08-13 01:38:33 -04:00
Edward Diener 3f43be5b55 Limited fold_left invocations. 2020-08-12 12:32:57 -04:00
Edward Diener d86d461aa7 Corrected seq's fold_left. 2020-08-11 22:13:23 -04:00
Edward Diener 45565b6dc3 Updated tests for VC++ deficiencies. 2020-08-11 10:26:13 -04:00
Edward Diener 1fe79acc20 Updated list tests 2020-08-10 21:11:57 -04:00
Edward Diener ff9d451901 Added selection tests. 2020-08-09 11:09:50 -04:00
Edward Diener e7b1f71c7e Updated tests and doc fix. 2020-08-08 11:30:37 -04:00
Edward Diener e44c47c9c3 Merge pull request #32 from jwakely/develop
Fix invalid XHTML document
2020-08-05 09:33:41 -04:00
Jonathan Wakely 0e1a2fecb1 Fix invalid XHTML document 2020-08-05 10:40:01 +01:00
Edward Diener c5fe11a649 Updated comparisons for 1024 maximum. 2020-08-01 17:57:02 -04:00
Edward Diener ee0c4135c3 Updated arithmetic tests for 1024 max. 2020-07-31 23:41:43 -04:00
Edward Diener 2fb4b3de1b Iteration limit to 1024. 2020-07-28 20:36:00 -04:00
Edward Diener 585fad5198 Fix dec limits. Allow 1024 in number and seq limits. 2020-07-28 01:39:40 -04:00
Edward Diener 21f796567e Add 1024 limit for all related number functionality 2020-07-27 20:59:29 -04:00
Edward Diener 905520aaf8 Added 1024 as maximum number 2020-07-27 07:54:05 -04:00
Edward Diener ea15d11d2f Updated iteration tests for 512 maximum 2020-07-25 12:43:39 -04:00
Edward Diener 42a283d112 Repetition tests when exceeding the 256 minimum number of repetitions 2020-07-19 17:30:40 -04:00
Edward Diener aba61d6018 Rename to all lower case. 2020-07-14 17:52:41 -04:00
Edward Diener 572f3f4d4a Fixed syntax error. 2020-07-14 17:39:48 -04:00
Edward Diener 6272649c8f Allow macro to be passed only tuple, without the tuple size, when variadics are used. 2020-07-14 17:34:17 -04:00
Edward Diener efe8cb6242 Updated list tests 2020-07-12 19:06:21 -04:00
Edward Diener a03dd0419e Fix syntax error 2020-07-12 19:05:57 -04:00
Edward Diener 9ba4469131 Fixed size implementation. 2020-07-11 13:51:08 -04:00
Edward Diener 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
Edward Diener 7e30c606b7 Revert to original size implementation now that 'while' has been expanded by one iteration. 2020-07-11 11:05:21 -04:00
Edward Diener 28a0c21651 Maximum for loop 2020-07-11 05:04:00 -04:00
Edward Diener 0fbfe9c981 Increased while loops by one to encompass maximum numbers. 2020-07-10 23:06:27 -04:00
Edward Diener c8e005f696 Corrected fold_left to allow for maximum tests. 2020-07-10 12:19:38 -04:00
Edward Diener 74f652c85f Updated size. 2020-07-08 22:04:07 -04:00
Edward Diener b9424eac02 Revert back to original reverse implementation 2020-07-07 20:23:58 -04:00
Edward Diener f10c669bab Add more large list tests 2020-07-07 19:13:37 -04:00
Edward Diener 0fd6b84304 Add extra iteration for fold_left and fold_right to cover maximum operations. 2020-07-07 19:13:05 -04:00
Edward Diener db21240060 Split reverse for seq seize greater than 256 2020-07-05 13:13:06 -04:00
Edward Diener 14a263bf9d Updated to not do duplicate dec 2020-07-05 10:57:18 -04:00
Edward Diener 5c7ae49828 Updated doc doe BOOST_PP_OVERLOAD. 2020-07-03 14:18:44 -04:00
Edward Diener bb9d4273d4 Updated seq tests 2020-07-02 18:39:04 -04:00
Edward Diener 110ddaca75 Updated tests. 2020-07-02 15:07:17 -04:00
Edward Diener 5e74d9f12e Added config.hpp back. 2020-07-02 12:13:22 -04:00
Edward Diener 1b5c17f75b Updated header includes 2020-07-02 11:36:36 -04:00
Edward Diener 15d0d66a75 Updated limit implementation. 2020-07-02 11:24:15 -04:00
Edward Diener 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
Edward Diener a037024cec Updated Travis CI clang 9 and 10 configurations 2020-06-30 13:32:30 -04:00
Edward Diener 57c160f921 Updated travis CI tests 2020-06-30 10:55:50 -04:00
Edward Diener 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
Edward Diener 47b430e3d5 Updated limits need undefs. Break reverse into two eequal parts. Updated seq tests. 2020-06-28 12:52:41 -04:00
Edward Diener 59048974ba When the tuple limit is not 256, use previous implementation 2020-06-13 13:19:21 -04:00
Edward Diener 62da4cc84b Updated tests. 2020-06-13 04:01:22 -04:00
Edward Diener b72dcd7958 Fixed array functionality for large arrays. 2020-06-11 20:44:39 -04:00
Edward Diener cf34b5c21b Simplified functionality 2020-06-11 08:23:22 -04:00
Edward Diener 1347313cae Added copyright 2020-06-11 08:22:46 -04:00
Edward Diener 31704b522a Added copyrights 2020-06-11 08:22:00 -04:00
Edward Diener f16f7721b5 Corrected syntax errors 2020-06-11 08:20:53 -04:00
Edward Diener 43f02f9405 Simplified multiplication 2020-06-10 11:05:43 -04:00
Edward Diener e8bbb16f57 Use detail check for number 1 rather than empty implementation. 2020-06-10 10:44:35 -04:00
Edward Diener 25aaea0136 Updated arithmetic. 2020-06-10 09:59:30 -04:00
Edward Diener 13c9669410 Updated arithmetic implementations to deal with corner cases whichy run out of WHILE loops. 2020-06-09 20:54:12 -04:00
Edward Diener d41d1dda97 Updated multiplication and subtraction to check for maximum/minimum numbers. 2020-06-07 15:49:53 -04:00
Edward Diener c07bb185c1 Updated BOOST_PP_ADD implementation checking for the maximum number. 2020-06-07 05:36:32 -04:00
Edward Diener 43caf4d41e Added macros for testing miniumum (0) andf maximum numbers. 2020-06-06 16:12:56 -04:00
Edward Diener a6c5cd5bcf Update test and jamfile 2020-06-04 21:52:46 -04:00
Edward Diener 05b3defe2f Update arithmetic tests 2020-05-29 21:35:40 -04:00
Edward Diener d49211a963 Only allow limits to be used by strictly conforming compilers. 2020-05-29 21:35:08 -04:00
Edward Diener 7541c351ce Update variadics test. 2020-05-29 13:12:53 -04:00
Edward Diener b68a2409ad Fix syntax errors. 2020-05-29 13:11:46 -04:00
Edward Diener 0999dfe1d5 Update default list size from 255 to 256. 2020-05-29 13:11:04 -04:00
Edward Diener a7560df684 Adding limits for repetition and seq. 2020-05-19 15:35:54 -04:00
Edward Diener efa576203b Testing of numbers up to 512 2020-05-09 17:03:48 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener efea46b2fb Allow iteration limits to be configured 2020-05-03 22:31:58 -04:00
Edward Diener b95d91ee71 Use a separate BOOST_PP_LIMIT_VARIADIC for variadic elements 2020-05-03 14:35:41 -04:00
Edward Diener 9bf0043260 Updates for tuple elements of more than 64 elements 2020-05-02 21:59:30 -04:00
Edward Diener 533d636ece Implement tuple limits for TUPLE functionality. Add updated copyright for changed files. 2020-05-01 14:38:32 -04:00
Edward Diener 0dcaaac66f Changed directory structure so that all limits implementations are in their own relative "limits" subdirectory. 2020-04-30 10:24:33 -04:00
Edward Diener 3b6102cd03 Added ability to change the number of tuple elements. A number of small fixes. 2020-04-30 09:06:06 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener e4fb5f4866 Merge branch 'develop' 2020-03-01 00:18:20 -05:00
Edward Diener 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
Edward Diener e4ce0f06f5 Merge branch 'develop' 2020-02-01 23:12:13 -05:00
Edward Diener 98f6c75e1e Make the quick.cpp test 'explicit'. 2020-01-06 02:34:42 -05:00
Edward Diener f99ed9921a Merge pull request #28 from boostorg/feature/add-cmake-tests
Add CMake install support, tests
2020-01-05 20:20:29 -05:00
Peter Dimov 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
Peter Dimov 0332a793f5 Fix Appveyor branch handling 2020-01-05 06:48:21 +02:00
Peter Dimov 6c350c6fc3 Update appveyor.yml 2020-01-05 06:46:08 +02:00
Peter Dimov 728c71ba75 Enable C in test/CMakeLists.txt; add int main() {} to quick.cpp 2020-01-05 05:07:08 +02:00
Peter Dimov 1ab9385a91 Add CMake install support, tests 2020-01-05 04:32:16 +02:00
Edward Diener 688c3f2ee6 Turn off variadic macro support by default for nvcc only when compiling CUDA files. 2019-12-14 13:20:45 -05:00
Edward Diener bd0db5ce8b Changed __CUDACC__ to __NVCC__ as other compilers do define __CUDACC__ when compiling CUDA files. 2019-12-14 12:45:02 -05:00
Edward Diener da60e76913 Added 'explicit' for test_iso. 2019-11-13 20:45:02 -05:00
Edward Diener 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
Edward Diener ffb27a1d56 Merge branch 'develop' 2019-11-12 15:01:45 -05:00
Edward Diener a6404a8fb2 Fixed __VA_OPT__ functionality for vc++ in c20 mode. 2019-11-12 14:57:09 -05:00
Edward Diener 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
Edward Diener e7256313c4 Merge branch 'develop' 2019-11-03 23:32:49 -05:00
Edward Diener b3036f1a63 Expanded emptiness explanation with the addition of the BOOST_PP_VA_OPT macro. 2019-11-02 23:58:29 -04:00
Edward Diener de49676452 Added docs for the BOOST_PP_VA_OPT macro. 2019-11-02 18:59:55 -04:00
Edward Diener 4f4f04c56b Added va_opt.hpp to facilities header file. 2019-11-01 15:51:34 -04:00
Edward Diener c5e90f23b7 Updated check_empty variadic macro notation. 2019-11-01 15:34:08 -04:00
Edward Diener 776037ae56 Corrected implementation and testing for BOOST_PP_VA_OPT 2019-10-31 06:07:10 -04:00
Edward Diener a9827c8fc8 Updated docs __VA_OPT__ support. 2019-10-30 14:32:45 -04:00
Edward Diener 6db241a78d Merge remote-tracking branch 'remotes/origin/develop' 2019-10-20 17:03:23 -04:00
Edward Diener 4fe7807f79 Add BOOST_PP_VA_OPT implementation 2019-10-20 17:00:51 -04:00
Edward Diener 80107ea60a Changed opt to has_opt in header file and HTML 2019-10-19 10:51:40 -04:00
Edward Diener 1473215dc7 Changed name of macro from BOOST_PP_VARIADIC_OPT to BOOST_PP_VARIADIC_HAS_OPT 2019-10-19 05:49:13 -04:00
Edward Diener 291f92696d Merge branch 'develop' 2019-10-09 12:48:38 -04:00
Edward Diener 771edacbff Completed the emptiness topic. 2019-10-08 15:50:08 -04:00
Edward Diener ac99242b71 Add a topic on "emptiness" 2019-10-08 09:43:18 -04:00
Edward Diener bda6ad9148 Updated docs 2019-10-06 22:20:19 -04:00
Edward Diener 88a0365f4d Added the BOOST_PP_CHECK_EMPTY macro and documentation. 2019-10-06 22:06:38 -04:00
Edward Diener 6af29d8b77 Merge branch 'develop' 2019-10-04 22:51:14 -04:00
Edward Diener af70b2872e Updated for compiling a CUDA file with clang. 2019-10-02 18:52:09 -04:00
Edward Diener b7b1425c7f Remove duplicate printing of a macro in this test. 2019-09-28 11:25:09 -04:00
Edward Diener 54669af127 Fixed macro testing for __VA_OPT__ support. 2019-09-27 22:15:18 -04:00
Edward Diener e439b2555e Updated name and parameters for clang cuda test. 2019-09-27 13:44:19 -04:00
Edward Diener 4cce94a84e Segregate C20 macros code from other macros for BOOST_PP_IS_EMPTY 2019-09-27 09:44:15 -04:00
Edward Diener 2f9be1086a Less wasteful inclusion. 2019-09-26 16:07:03 -04:00
Edward Diener 684e9991ec Only include macro if allowable. 2019-09-26 15:05:17 -04:00
Edward Diener a42f374b97 Updated example for using the BOOST_PP_VARIADIC_OPT macro. 2019-09-26 01:19:31 -04:00
Edward Diener 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
Edward Diener 22deb165b6 Documentation for variadic opt functionality. 2019-09-25 15:43:07 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener 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
Edward Diener 9b3e6a2cd6 Updated for b2 cmake support. 2018-12-19 22:09:23 -05:00
Edward Diener d135cad759 Merge branch 'develop' 2018-10-25 19:41:15 -04:00
Edward Diener 8d26689387 Merge branch 'develop' of https://github.com/boostorg/preprocessor into develop 2018-10-25 16:58:28 -04:00
Edward Diener f78f0a1d25 Removing any forcing of C++ levels. 2018-10-25 16:57:55 -04:00
Edward Diener 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
Edward Diener adf2746626 Add support for vc++ /experimental:preprocessor mode. 2018-10-20 14:02:20 -04:00
Edward Diener fe70754559 Include wchar.h in order to test wide character stringize under C. 2018-10-19 16:57:17 -04:00
Edward Diener 45588469f3 Only test wide character stringize in c++. 2018-10-19 16:41:43 -04:00
Mike Dev 344ce6abf9 [CMake/CI] Use config_info.cpp for cmake self test 2018-10-17 12:13:45 +02:00
Mike Dev 31653b34c9 [CMake/CI] Some cleanup 2018-10-17 12:12:57 +02:00
Mike Dev a4e304ca87 [CMake/CI] Add cmake self test to appveyor 2018-10-17 11:33:21 +02:00
Edward Diener 0e335df79e Test for stringize macro and use of variadic in stringize macro. 2018-10-16 16:37:10 -04:00
Mike Dev ee5ed2510d [CMake] Add self-test for cmake file to travis 2018-10-16 19:58:45 +02:00
Mike Dev 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
Edward Diener b5c081bf7a Variadic macro support for the PGI compiler when EDG is being used with it. 2018-09-23 09:12:59 -04:00
Edward Diener 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
Edward Diener 49a72ac4f2 Corrected sentence by removing extra "the". 2018-08-23 19:20:04 -04:00
Edward Diener 56090c56b5 Merge branch 'develop' 2018-02-20 09:13:57 -05:00
Edward Diener 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
Edward Diener a329a67b47 NVidia compiler supports variadic macros. 2018-02-14 22:01:04 -05:00
Edward Diener 34af3a925c Merge pull request #11 from danieljames/feature/fix-links
Fix some links
2018-01-11 13:02:34 -05:00
Daniel James ad22f9686e Fix some links 2018-01-11 14:20:16 +00:00
eldiener 39175c471f Merge branch 'develop' 2017-10-30 11:32:10 -04:00
eldiener aa9ee3ae3f Removed --depth 1 2017-10-29 21:31:25 -04:00
eldiener 50ffeeee8b Merge branch 'develop' 2017-10-27 22:31:37 -04:00
Edward Diener f54e270433 Better appveyor designation for tests. 2017-10-09 11:58:08 -04:00
Edward Diener 08ec2abb2e Updated appveyor file for correct toolsets. 2017-10-09 11:39:03 -04:00
Edward Diener c4b1ce10bd Add VS2017 worker image. 2017-10-09 11:23:30 -04:00
Edward Diener 1ecc2e2ec9 Added Appveyor file. 2017-10-09 08:09:05 -04:00
Edward Diener b19e4deacb Merge branch 'develop' 2017-04-24 12:13:09 -04:00
Edward Diener 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
Edward Diener e474eea44f Slight correction to particularize previous change as involving only -fno-ms-compatibility mode. 2017-03-26 01:02:05 -07:00
Edward Diener 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
Edward Diener a6275942f3 Merge branch 'develop' 2017-02-19 03:21:26 -05:00
Edward Diener 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
Edward Diener 075a3a02c8 Merge branch 'develop' 2017-01-04 11:29:41 -05:00
Edward Diener dc41624aba Added Travis CI file. Updated config.hpp for Intel 17 on Windows. 2016-11-16 13:01:51 -05:00
Edward Diener 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
Edward Diener d922d757be Fix for VC++ and VC++ emuolations ot the SEQ_TO_LIST macro 2016-11-16 00:15:57 -05:00
Edward Diener eb143c10f8 Added configuration info test. 2016-11-14 00:25:46 -05:00
Sergiu Deitsch e1e3a2e21e added Intel C++ compiler 17.0 workaround 2016-11-11 15:30:21 +01:00
Edward Diener c2beb74b90 Updated for VC++ quirks and overload code example. 2016-04-14 08:52:06 -04:00
Edward Diener e70abe7b49 Updated for VC++ quirks and overload code example. 2016-04-11 14:24:38 -04:00
Edward Diener ee73989a21 Further change to ensure that clang targeting VC++ behaves as the VC++ preprocessor 2016-03-30 13:52:02 -04:00
Edward Diener 7835ed019c Updated configuration to support clang targeting VC++ 2016-03-30 12:08:46 -04:00
Edward Diener 3292532517 Merge branch 'master' into develop 2015-10-16 18:47:02 -04:00
Edward Diener 4e29a160b9 Merge branch 'develop' 2015-10-14 22:36:27 -04:00
Edward Diener b1be22cf77 Merge pull request #8 from mgaunard/patch-1
lower version requirement for SunCC and variadics
2015-10-08 11:34:04 -04:00
Mathias Gaunard 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
Edward Diener 88c4282493 Fixed leaving off first letter of word in doc. 2015-09-21 10:53:10 -07:00
Edward Diener 02ab183b96 Added documentation for identity_n macro. 2015-09-13 13:21:57 -04:00
Edward Diener 735e301c46 Added BOOST_PP_IDENTITY_N functionality with test. 2015-09-12 19:53:59 -04:00
Edward Diener e983c16e61 Merge branch 'develop' 2015-08-27 21:21:19 -04:00
Edward Diener 132eb67cec Remove spaces in the filename for AppendixA. 2015-08-21 16:38:12 -04:00
Edward Diener 4c39e92496 Merge branch 'develop' 2015-08-21 09:28:34 -04:00
Edward Diener 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
Thomas Kent 478bb6e10e Removed weird unicode character from filename and links 2015-08-14 17:39:42 -05:00
Edward Diener 3c3c7b42d9 Corrected implementation same as 'develop' and updated test sames as 'develop'. 2015-07-17 07:45:08 -04:00
Edward Diener 3f97464c27 Added needed include. 2015-07-17 07:16:11 -04:00
Edward Diener d4fbb8fda2 Back out change from 'develop' because of failing MPL test. 2015-07-16 19:52:49 -04:00
Edward Diener 38e7f69054 Merge branch 'develop' 2015-07-16 18:16:24 -04:00
Edward Diener 3ed3cd689e Added more thorough tests for large seqs 2015-05-30 08:00:33 -04:00
Edward Diener fc6229660e Added not about VC++ compiler limitation 2015-05-29 22:53:01 -04:00
Edward Diener 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
Edward Diener 350c0e59b1 Add ned macro 2015-05-27 19:15:45 -04:00
Edward Diener 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
Edward Diener b84235fcb7 Revert "Corrected fix for seq for each processing."
This reverts commit dc61cc1373.
2015-05-27 07:44:30 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener 106f5a43a1 Added local copy of preprocessor introduction from the C++ Template Metaprogramming Book Appendix A 2015-05-20 17:19:31 -04:00
Edward Diener 915ab7834c Add local copy of preprocessing tutorail 2015-05-20 16:48:23 -04:00
Edward Diener dc61cc1373 Corrected fix for seq for each processing. 2015-05-19 20:10:39 -04:00
Edward Diener 4c2c83f9f2 Backing out for_each and for_each_i changes. 2015-05-19 11:34:02 -04:00
Edward Diener 862f64c45c Updated documentation about undefined behavior. 2015-05-18 17:02:48 -04:00
Edward Diener 06c18a67f8 Fixed replace when replacing the last element of a 256 element sequence. 2015-05-18 16:36:06 -04:00
Edward Diener eb2a675b8f Added #undef to quell VC++ warnings about macro be redefined. 2015-05-18 10:51:50 -04:00
Edward Diener 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
Edward Diener 1543b5fbf7 Remove need to add extra nil element 2015-05-17 14:54:39 -04:00
Edward Diener 86378d648e Removed need to add extra seq element. 2015-05-17 13:30:03 -04:00
Edward Diener 633f1e679a Added information about empty data. 2015-05-17 00:46:10 -04:00
Edward Diener 4360660e39 Add wstringize.hpp to library header 2015-05-16 23:58:39 -04:00
Edward Diener 827ff0905c Cleaner use of preprocessor defines to quell warnings. 2015-05-16 23:44:06 -04:00
Edward Diener 9cb039ab8b Merge branch 'develop' 2015-03-28 04:19:20 -04:00
Edward Diener 1b3fe1570b Put BOOST_PP_EXPAND in correct place for VC++ 2015-02-02 21:19:50 -05:00
Edward Diener 4f0adfb553 Reveert removal of BOOST_PP_EXPAND 2015-02-02 18:04:58 -05:00
Edward Diener 01848af60d Merge branch 'vctuple' into develop 2015-01-30 23:16:08 -05:00
Edward Diener dc54fee21c Remove BOOST_PP_EXPAND usage since it is no needed 2015-01-30 23:11:07 -05:00
Edward Diener 77a9177c31 Remove extraneous include 2015-01-30 22:15:54 -05:00
Edward Diener f1165249fb Merge branch 'develop' 2015-01-15 15:20:38 -05:00
Edward Diener fd135a078f Added BOOST_PP_LIST_SIZE_D to list of re-entrant macros. 2014-12-09 13:21:49 -05:00
Edward Diener eedd7378f1 Added EQUAL and NOT_EQUAL to re-entrancy list. 2014-12-07 16:04:57 -05:00
Edward Diener e1ade3ea3b Changed explanation of which value should be greater for maximum efficiency. 2014-12-05 00:16:11 -05:00
Edward Diener 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
Edward Diener 0baf10bfc6 Updated docs to refer to config.hpp rather than variadics.hpp. 2014-11-07 16:35:36 -05:00
Edward Diener e72b298001 Merge branch 'develop' 2014-10-12 18:29:09 -04:00
Edward Diener 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
Edward Diener 9c2ef3ae46 Merge pull request #3 from danieljames/metadata
Create metadata file.
2014-08-18 11:36:36 -04:00
Daniel James 1a40a5ea30 Add metadata file. 2014-08-18 15:09:06 +01:00
Edward Diener 15f75eca35 Updated test for "empty" tuple and arrays. 2014-07-21 08:38:07 -04:00
Edward Diener 8924ad016f Additional tests for "empty" tuples. 2014-07-20 17:40:34 -04:00
Edward Diener 9c478f0c39 Special processing when "empty" single element . 2014-07-20 17:40:02 -04:00
Edward Diener cee3323340 Corrected link. 2014-07-16 19:30:51 -04:00
Edward Diener 503175a63e Added copyright and base link back to original macro. 2014-07-03 21:17:20 -04:00
Edward Diener 46ff3eb1f4 Correct line endings. 2014-07-03 21:15:56 -04:00
Edward Diener 04634b402b Added topics for showing lists of macros which re-enter FOR, REPEAT, and WHILE. 2014-07-03 21:10:26 -04:00
Edward Diener 83f05f5325 Add links tio topics for re-entrancies. 2014-07-03 21:02:11 -04:00
Edward Diener 00d05d4f04 Added links to topics with macros which use re-entrancy versions. 2014-07-03 20:55:39 -04:00
Edward Diener 542bd2653d Use expand to fix VC++ problem. 2014-07-03 16:59:52 -04:00
Edward Diener fd36e236bc get_data not needed. 2014-07-03 16:59:39 -04:00
Edward Diener c4bf80ee1d Cleaner inclusion if is_single_return functionality. 2014-07-03 16:59:30 -04:00
Edward Diener 2cea910cd8 Simplify get_data. 2014-07-03 16:59:15 -04:00
Edward Diener 4fc958a89d Remove special processing for REM_CTOR wsing VC++. 2014-07-03 16:59:05 -04:00
Edward Diener 08c50b219d Added documentation for is_begin_parens and remove_parens. 2014-07-03 16:58:01 -04:00
Edward Diener 3a472c2084 Updated docs 2014-07-03 16:56:40 -04:00
Edward Diener 4063b1564b Updated doc for empty array and/or list when converted to other data type. 2014-07-03 16:51:28 -04:00
Edward Diener b70598c357 Using BOOST_PP_IDENTITY makes code clearer. 2014-07-03 16:51:17 -04:00
Edward Diener 56525c76cc Change back to original implementation. 2014-07-03 16:50:56 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener df165d9fc6 Added further tests for empty lists and arrays. 2014-07-03 16:46:07 -04:00
Edward Diener fb732aaab5 Fixes for empty conversions and tests for empty conversions. 2014-07-03 16:45:55 -04:00
Edward Diener 9dfce3363c Added remove_parens and tests. 2014-07-03 16:45:22 -04:00
Edward Diener 6590e41581 Further tests of changes involving empty data. 2014-07-03 16:45:10 -04:00
Edward Diener ec93b32f82 Corrected calculation _msc_ver number. 2014-07-03 16:44:56 -04:00
Edward Diener 6c091d7f99 Removed tests which involve undefined behavior. 2014-07-03 16:44:39 -04:00
Edward Diener b3b9e80f86 Updated tests for strict compilers or VC++ 2014-07-03 16:44:27 -04:00
Edward Diener ea91a3defa Added variadic is_empty tests. 2014-07-03 16:44:13 -04:00
Edward Diener 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
Edward Diener 2c7cf9410a Added variadic version of BOOST_PP_EMPTY and added new is_empty tests. 2014-07-03 16:43:40 -04:00
Edward Diener 975c39b910 Added variadic is_empty and is_begin_parens along with tests. 2014-07-03 16:43:16 -04:00
Edward Diener f80bb83f3b Fixes for empty tuple processing 2014-07-03 16:42:26 -04:00
Edward Diener 21ccb35814 Reapply typo fix. 2014-06-17 07:08:04 -04:00
Edward Diener 6b0be3fe4f Revert "Merge branch 'master' into develop"
This reverts commit 1422fce0db, reversing
changes made to 9d2d1fffdf.
2014-06-16 23:58:35 -04:00
Edward Diener 1422fce0db Merge branch 'master' into develop 2014-06-16 08:43:38 -04:00
Edward Diener 9d2d1fffdf Revert use of variadic is_empty. 2014-06-16 07:01:15 -04:00
Edward Diener 60691e3a49 Merge branch 'vcoverload' into develop 2014-06-08 10:21:02 -04:00
Edward Diener 3f75659921 Added documentation for is_begin_parens and remove_parens. 2014-06-08 02:00:24 -04:00
Edward Diener b43a4708eb Correct line endings. 2014-06-04 19:38:09 -04:00
Edward Diener b923dadf19 Merge pull request #2 from coding-po/Bug_8454
#8454. Fixed minor typo in documentation.
2014-06-04 06:53:42 -04:00
Edward Diener e57370608e Updated doc for empty array and/or list when converted to other data type. 2014-06-04 06:50:33 -04:00
6recetru 7da3c88d82 #8454. Fixed minor typo in documentation. 2014-05-26 16:55:07 -07:00
Edward Diener 70e0f2d6e0 Using BOOST_PP_IDENTITY makes code clearer. 2014-05-26 16:36:30 -04:00
Edward Diener b03d46129c Change back to original implementation. 2014-05-25 07:53:44 -04:00
Edward Diener 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
Edward Diener 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
Edward Diener 181a88db7e Added further tests for empty lists and arrays. 2014-05-04 23:55:53 -04:00
Edward Diener 697ebcd840 Fixes for empty conversions and tests for empty conversions. 2014-05-04 03:07:00 -04:00
Edward Diener 70e775452a Added remove_parens and tests. 2014-05-03 02:15:47 -04:00
Edward Diener dec4cfd273 Further tests of changes involving empty data. 2014-05-02 20:17:08 -04:00
Edward Diener 7da9dbb7a9 Corrected calculation _msc_ver number. 2014-05-02 02:59:10 -04:00
Edward Diener 5c22605c3d Removed tests which involve undefined behavior. 2014-05-01 23:21:05 -04:00
Edward Diener 4614c62130 Updated tests for strict compilers or VC++ 2014-05-01 01:20:12 -04:00
Edward Diener fe2a9cbfcc Added variadic is_empty tests. 2014-04-30 16:15:57 -04:00
Edward Diener 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
Edward Diener 6fe93a542d Added variadic version of BOOST_PP_EMPTY and added new is_empty tests. 2014-04-28 22:12:08 -04:00
Edward Diener d2bfda8308 Added variadic is_empty and is_begin_parens along with tests. 2014-04-28 19:24:42 -04:00
Edward Diener 0a23b4d6a6 Fixes for empty tuple processing 2014-04-27 12:00:13 -04:00
Edward Diener 81302d1e69 Merge branch 'develop' 2014-04-01 00:43:06 -04:00
Edward Diener 91fb925e1c Correct line ending. 2014-02-27 22:43:23 -05:00
Edward Diener cc9fbc3734 Fix incorrect line ending. 2014-02-27 17:37:30 -05:00
Edward Diener a5ed4fe7d8 Added copyright and base link back to original macro. 2014-02-27 17:25:32 -05:00
Edward Diener 042fb29bf1 Added links to topics with macros which use re-entrancy versions. 2014-02-27 17:06:00 -05:00
Edward Diener 2b46c0f6bd Added topics for showing lists of macros which re-enter FOR, REPEAT, and WHILE. 2014-02-27 16:49:57 -05:00
Edward Diener 7cb46e03ea Change from develop to master. 2014-02-26 09:40:58 -05:00
Edward Diener 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
Edward Diener b24e7a708d Create first merge point for Git on Master 2014-02-25 23:50:42 -05:00
Edward Diener 6978c83372 Explanations about using tuples rather than arrays with variadic macro support. 2013-12-05 17:43:48 -05:00
Edward Diener 58cf4ccba9 Updated title explanation about Boost PP usability. 2013-12-05 17:28:42 -05:00
Edward Diener d11b03ad1e Updated tests to cover more areas of the implementation. 2013-12-05 14:43:02 -05:00
Edward Diener b3cdac0ea2 Updated tests.
[SVN r86789]
2013-11-23 07:45:00 +00:00
Edward Diener b03b732a19 Updated documentation for tuples.
[SVN r86788]
2013-11-23 03:59:40 +00:00
Edward Diener e9bdfe5276 Corrected description.
[SVN r86783]
2013-11-22 04:00:54 +00:00
Edward Diener b8eb1e0149 Updated tuple docujmentation for new functionality.
[SVN r86782]
2013-11-22 03:38:17 +00:00
Edward Diener 428b3c5103 The clang compiler now supports variadic macros by default.
[SVN r86780]
2013-11-21 18:57:41 +00:00
Edward Diener 25dbb38e1e Updated tuple tests.
[SVN r86766]
2013-11-19 14:53:24 +00:00
Edward Diener 8647354545 Updated tuple rem documentation.
[SVN r86761]
2013-11-19 04:31:38 +00:00
Edward Diener 9d3203eb71 Fixes for VC++ and variadic size usage.
[SVN r86760]
2013-11-19 02:47:23 +00:00
Edward Diener e607287986 Updated array tests.
[SVN r86743]
2013-11-17 22:23:51 +00:00
Edward Diener 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
Edward Diener 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
Edward Diener 390d72525e Update to restore BOOST_PP_TUPLE_REM_0()
[SVN r86141]
2013-10-02 23:21:31 +00:00
Edward Diener 5e0422ff97 Reinstate fix for clang so that it is recognized as strict compliance.
[SVN r86044]
2013-09-30 02:04:47 +00:00
Edward Diener 06b1bf9b21 Revert previous change for clang.
[SVN r86011]
2013-09-29 19:21:46 +00:00
Edward Diener 1cd181a946 Changed for clang on Windows which defines _MSC_VER.
[SVN r86004]
2013-09-29 15:16:25 +00:00
Edward Diener 6f56be00ee Update to restore BOOST_PP_TUPLE_REM_0()
[SVN r85172]
2013-07-30 00:36:47 +00:00
Edward Diener d51297c62b Removed redundant explanation.
[SVN r83898]
2013-04-14 14:48:50 +00:00
Edward Diener e630b6e23f Updated documentation linking the (v) notation to a named anchor explaining it.
[SVN r83891]
2013-04-14 01:46:09 +00:00
Edward Diener b07cc69819 Updated documentation linking the (v) notation to a named anchor explaining it.
[SVN r83890]
2013-04-14 00:50:30 +00:00
Paul Mensonides b60a47252d added VARIADIC_SEQ_TO_SEQ
[SVN r80704]
2012-09-26 03:50:27 +00:00
Paul Mensonides c48da5375b pp-lib variadic changes merged to release branch
[SVN r75915]
2011-12-12 12:52:44 +00:00
Edward Diener 7346503b96 Update link to the C++ Template Metaprogramming book Appendix A online.
[SVN r75126]
2011-10-27 02:10:02 +00:00
Edward Diener 46caf30af4 Update link to the C++ Template Metaprogramming book Appendix A online.
[SVN r75125]
2011-10-27 02:03:36 +00:00
Edward Diener 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
Paul Mensonides 1149d38ef4 limited variadic support
[SVN r72763]
2011-06-26 13:07:20 +00:00
Steven Watanabe c81e77bb16 Merge [43112], [62165], [65119], and [65120] from the trunk.
[SVN r71037]
2011-04-06 17:22:43 +00:00
Paul Mensonides 0c87b91f95 gcc fix
[SVN r70733]
2011-03-30 01:14:17 +00:00
Paul Mensonides 49142ec930 commit test
[SVN r69130]
2011-02-21 22:51:57 +00:00
Steven Watanabe c776ac0002 Avoid evaluating BOOST_PP_SEQ_HEAD when it isn't needed. Fixes #4465.
[SVN r65120]
2010-08-30 02:26:02 +00:00
Steven Watanabe 568f641d8e Remove unused #include. Refs #4465.
[SVN r65119]
2010-08-30 02:24:41 +00:00
Steven Watanabe 9548743659 Fix some minor documentation errors. Fixes #4224
[SVN r62165]
2010-05-23 14:44:57 +00:00
Troy D. Straszheim 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
Troy D. Straszheim 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
Troy D. Straszheim 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
Troy D. Straszheim 0decc801d5 Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
Troy D. Straszheim 6cee861d4b merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
Boris Gubenko 32f92a1431 merge tests and Jamfiles for 7 libraries
[SVN r50456]
2009-01-04 05:17:02 +00:00
Michael A. Jackson 328bd6f995 Updating dependency information for modularized libraries.
[SVN r49628]
2008-11-07 17:05:27 +00:00
Michael A. Jackson 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
Michael A. Jackson 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
Rene Rivera 485db8aef5 Move preprocessor tests into canonical test subdir structure.
[SVN r44385]
2008-04-13 23:21:57 +00:00
Marshall Clow aba62cac02 Fix typo (bug #1434)
[SVN r43112]
2008-02-05 16:07:19 +00:00
Beman Dawes 4507d79106 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Beman Dawes 80f57a0284 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
Beman Dawes 6a5b3283fc Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
nobody f3461db9c7 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

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


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


[SVN r34684]
2006-07-23 20:48:34 +00:00
Rene Rivera b14b395cec Fix various inspection errors: add missing copyright and license info.
[SVN r34683]
2006-07-23 20:45:18 +00:00
Paul Mensonides 0e2bbd51ce added x-refs
[SVN r33472]
2006-03-24 21:34:52 +00:00
nobody 9573b31cea This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
Paul Mensonides e6a44c77b9 alternate VC++ workaround
[SVN r33061]
2006-02-21 12:02:08 +00:00
Paul Mensonides 5ce690af3b update for new Borland preprocessor
[SVN r32369]
2006-01-22 01:35:57 +00:00
Hartmut Kaiser 546d5dc9a3 Changed the __SPIRIT_PP__ macro in the preprocessor lib config to __WAVE__.
[SVN r32367]
2006-01-21 15:07:39 +00:00
Victor A. Wagner Jr. 645026f596 Changed - to elif so the #endifs still match
[SVN r32257]
2006-01-08 05:27:52 +00:00
Paul Mensonides 252e372ecb allowance for GCC-XML
[SVN r32255]
2006-01-08 00:11:41 +00:00
Paul Mensonides c9c95e1684 single element fix
[SVN r30808]
2005-09-05 07:58:27 +00:00
Paul Mensonides 7c8bd6dec3 dedicated counter
[SVN r30562]
2005-08-12 20:42:15 +00:00
Paul Mensonides e55d8e83be bug fix
[SVN r30561]
2005-08-12 20:11:50 +00:00
Douglas Gregor 3a15a4500f Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
Paul Mensonides a655d38e4b added shifted binary params
[SVN r30499]
2005-08-06 21:55:13 +00:00
Paul Mensonides 8927845acd CW<9 workaround
[SVN r30184]
2005-07-19 20:47:19 +00:00
Paul Mensonides 65496dd1d2 IBM workaround
[SVN r29731]
2005-06-22 11:02:32 +00:00
Paul Mensonides 33af6f8d98 IBM workaround
[SVN r29718]
2005-06-21 07:55:15 +00:00
Paul Mensonides f5bc79f606 VC++ workaround
[SVN r26849]
2005-01-25 22:43:56 +00:00
John Maddock 3fc9130412 BSL update based on permissions granted in blanket-permission.txt
[SVN r25863]
2004-10-25 11:58:45 +00:00
Paul Mensonides e11d89cecd ..
[SVN r25856]
2004-10-24 23:52:55 +00:00
Paul Mensonides b71f390686 headers/xxx.hpp.html >> headers/xxx.html
[SVN r25656]
2004-10-11 06:58:45 +00:00
Paul Mensonides fcc60a3011 fixed 31+ filenames, unlinked files
[SVN r25057]
2004-09-13 16:45:27 +00:00
Paul Mensonides cb86812995 removed commented link
[SVN r25054]
2004-09-13 16:11:54 +00:00
John Maddock 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
Dave Abrahams 0b8615f1be tweak url
[SVN r24755]
2004-08-26 12:50:05 +00:00
Aleksey Gurtovoy 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
Aleksey Gurtovoy 1812ca8e98 MSVC 6.5+STLPort workaround
[SVN r24218]
2004-08-01 06:27:56 +00:00
Douglas Gregor e599a58f10 Converted to Boost Software License, Version 1.0
[SVN r24096]
2004-07-27 03:43:34 +00:00
Paul Mensonides d8c979c633 *** empty log message ***
[SVN r23734]
2004-07-18 20:15:36 +00:00
Paul Mensonides 28b2809d9c news -> introduction
[SVN r23563]
2004-07-14 22:37:27 +00:00
Paul Mensonides 3a2b948fb3 Appendix A\!
[SVN r23561]
2004-07-14 22:18:42 +00:00
Paul Mensonides 8b80898ad6 fixed redundant check
[SVN r23556]
2004-07-14 21:13:05 +00:00
Paul Mensonides a7f3bbaa59 fixed no-EMPTY usage
[SVN r23091]
2004-06-11 22:18:42 +00:00
Paul Mensonides 34029cf0cb fixed usage bug
[SVN r22773]
2004-05-09 23:54:14 +00:00
Rene Rivera d56c9b37a6 Fix broken links.
[SVN r21401]
2003-12-27 01:16:48 +00:00
Paul Mensonides 6241d12f49 updated for Metrowerks' new pp
[SVN r21330]
2003-12-18 23:56:04 +00:00
Paul Mensonides 9cc2279b2f tab removal
[SVN r21053]
2003-12-02 00:43:36 +00:00
Paul Mensonides 85182b4426 evil VC bug fix
[SVN r18276]
2003-04-18 06:24:49 +00:00
Paul Mensonides 7a652be8b4 fixed reversed results
[SVN r17875]
2003-03-13 06:51:21 +00:00
Paul Mensonides 730cad9bcd Spirit PP!
[SVN r17692]
2003-03-01 19:43:05 +00:00
Paul Mensonides ce9576a096 doc fixes
[SVN r17466]
2003-02-17 04:19:02 +00:00
Beman Dawes 72ecbc58fa fix wrong dir name
[SVN r17136]
2003-01-31 21:26:53 +00:00
Paul Mensonides 1f03280e44 oops, tabs...
[SVN r16768]
2003-01-06 01:20:30 +00:00
Paul Mensonides fbe6a2a52e predicate support for object-like config macros
[SVN r16767]
2003-01-06 01:07:12 +00:00
Paul Mensonides ad641c4b14 fixed copyright
[SVN r16763]
2003-01-05 18:59:40 +00:00
Paul Mensonides e2250a1f05 fixed right parenthesis
[SVN r16762]
2003-01-05 18:58:22 +00:00
Paul Mensonides 0d0d7277d1 MWCC fix
[SVN r16730]
2003-01-02 06:29:35 +00:00
Paul Mensonides 8927ac12fc MWCC fix
[SVN r16729]
2003-01-02 06:29:00 +00:00
Beman Dawes 1455a98541 add or update See www.boost.org comments
[SVN r16708]
2002-12-27 16:51:53 +00:00
Paul Mensonides 9f3cf15ea8 encapsulated split
[SVN r16705]
2002-12-26 06:38:37 +00:00
Paul Mensonides 90b4c400ce minor vc fix
[SVN r16704]
2002-12-26 06:37:43 +00:00
Paul Mensonides aa1a4b8185 hp update
[SVN r16703]
2002-12-26 05:52:20 +00:00
Paul Mensonides 23b5e32ec6 minor vc fixes
[SVN r16702]
2002-12-26 05:44:41 +00:00
Aleksey Gurtovoy 66ae128156 add missing include
[SVN r16301]
2002-11-17 07:42:57 +00:00
Paul Mensonides eb440203ae configuration bug fixed
[SVN r16178]
2002-11-09 18:19:06 +00:00
Paul Mensonides 948dc37c77 fixed -1st- example
[SVN r16156]
2002-11-08 02:53:21 +00:00
Paul Mensonides 632177847c fixed bibliography links
[SVN r16155]
2002-11-08 02:47:17 +00:00
Paul Mensonides 8788b95b21 wide stringizing
[SVN r16154]
2002-11-08 02:44:38 +00:00
Paul Mensonides 108875cb25 wide stringizing
[SVN r16153]
2002-11-08 02:27:19 +00:00
Paul Mensonides 1c44a4a510 set -> seq
[SVN r16152]
2002-11-08 02:12:35 +00:00
Paul Mensonides 91eba2f11b set -> seq
[SVN r16151]
2002-11-07 23:41:54 +00:00
Paul Mensonides 5be4c6ee5a set -> seq
[SVN r16150]
2002-11-07 23:39:29 +00:00
Paul Mensonides 54bdb38619 set -> seq
[SVN r16149]
2002-11-07 23:16:43 +00:00
Paul Mensonides 4f3cfd2dbd set -> seq
[SVN r16148]
2002-11-07 23:08:07 +00:00
Beman Dawes 4321cbbb79 Fix test directory name
[SVN r16066]
2002-11-02 20:31:30 +00:00
Dave Abrahams 1a45a2d833 Workarounds for Sun Workshop 7
[SVN r16037]
2002-11-01 02:45:24 +00:00
Paul Mensonides f9565520fd fixed hyperlink error
[SVN r15910]
2002-10-13 07:33:36 +00:00
Paul Mensonides d701bf8d47 preliminary set support
[SVN r15909]
2002-10-13 06:11:19 +00:00
Paul Mensonides 33daabd87d preliminary set support
[SVN r15908]
2002-10-13 05:47:23 +00:00
Paul Mensonides b2bd498a4f extended array support
[SVN r15747]
2002-10-06 02:37:37 +00:00
Paul Mensonides 3807daaf45 reinserted debugging support
[SVN r15746]
2002-10-06 02:31:47 +00:00
Paul Mensonides b7127aa718 extended array support
[SVN r15745]
2002-10-06 02:30:33 +00:00
Paul Mensonides 33b4cfab1b replaced prefixes
[SVN r15744]
2002-10-05 22:01:01 +00:00
Paul Mensonides e53be8491f fixed url
[SVN r15739]
2002-10-05 19:22:55 +00:00
Paul Mensonides 6e30689e5e lib cleanup
[SVN r15696]
2002-10-03 22:26:50 +00:00
Paul Mensonides 4bb690a819 lib cleanup
[SVN r15693]
2002-10-03 22:13:37 +00:00
Paul Mensonides ae584c68b2 lib cleanup
[SVN r15689]
2002-10-03 22:04:13 +00:00
Paul Mensonides 7856c3b759 new tests
[SVN r15688]
2002-10-03 21:55:27 +00:00
Paul Mensonides 608163ebbe removed temporary docs
[SVN r15687]
2002-10-03 21:49:23 +00:00
Paul Mensonides 3b93d471b1 inclusion fix
[SVN r15459]
2002-09-19 20:49:38 +00:00
Paul Mensonides e8cd3315e0 added trailing binary parameters
[SVN r15443]
2002-09-18 19:43:48 +00:00
Paul Mensonides 77b2daeb56 config redirection for Visual Age on AIX
[SVN r15442]
2002-09-18 19:43:08 +00:00
Dave Abrahams b70d56a6b3 Fix misspelled __EDG_VERSION__ flag.
[SVN r15431]
2002-09-18 02:36:15 +00:00
Paul Mensonides 72fab9d7da fixed everything-but-gcc bug
[SVN r15312]
2002-09-13 22:47:38 +00:00
Paul Mensonides 228d4ce2d7 obsolete files
[SVN r15311]
2002-09-13 22:45:19 +00:00
Paul Mensonides ce9ad7208c explicit deduction
[SVN r15309]
2002-09-13 22:34:09 +00:00
Paul Mensonides 145d9890ca increased depth for msvc
[SVN r15308]
2002-09-13 22:33:43 +00:00
Paul Mensonides 256368661c flags fix
[SVN r15296]
2002-09-13 09:23:06 +00:00
Paul Mensonides 15de7eec4b msvc depth issues
[SVN r15295]
2002-09-13 09:10:26 +00:00
Paul Mensonides fdc4155fea msvc arbitrary ICE fix
[SVN r15284]
2002-09-12 23:48:47 +00:00
Paul Mensonides a4efd4c21a revert
[SVN r15282]
2002-09-12 23:34:29 +00:00
Paul Mensonides 715054b3b4 MSVC fix
[SVN r15281]
2002-09-12 23:08:13 +00:00
Paul Mensonides 907aa0914d speedups
[SVN r15273]
2002-09-12 08:10:23 +00:00
Paul Mensonides 859b360101 speedups
[SVN r15272]
2002-09-12 08:00:48 +00:00
Paul Mensonides 0d9fa12aa6 Metrowerks speedup
[SVN r15248]
2002-09-10 02:12:19 +00:00
Paul Mensonides 3facdc63f6 gcc fix
[SVN r15229]
2002-09-09 06:23:42 +00:00
Paul Mensonides 5423acd697 fixed flags precedence
[SVN r15220]
2002-09-09 00:35:13 +00:00
Paul Mensonides fea5ddce84 fixed capitalization
[SVN r15219]
2002-09-08 23:43:43 +00:00
Paul Mensonides b6e1f95f62 compatibility jumper headers
[SVN r15217]
2002-09-08 23:11:02 +00:00
Paul Mensonides e94ef7422a borland fixes
[SVN r15215]
2002-09-08 22:06:46 +00:00
Paul Mensonides ded6f3a3c9 compatibility jumper headers
[SVN r15213]
2002-09-08 21:34:26 +00:00
Paul Mensonides faaa55709b workaround for insidious bcc bug
[SVN r15212]
2002-09-08 21:15:30 +00:00
Paul Mensonides 393b019394 not supposed to be here!
[SVN r15211]
2002-09-08 21:15:12 +00:00
Paul Mensonides b7d529ac6b initial revision
[SVN r15207]
2002-09-08 11:01:16 +00:00
Paul Mensonides 26e81a5585 initial revision
[SVN r15206]
2002-09-08 10:52:13 +00:00
Paul Mensonides c3b2cc2def bad name
[SVN r15205]
2002-09-08 10:51:48 +00:00
Paul Mensonides 89e278e967 initial revision
[SVN r15204]
2002-09-08 10:37:14 +00:00
Paul Mensonides 5c1b446a9e initial revision
[SVN r15203]
2002-09-08 10:22:48 +00:00
Paul Mensonides 54d6f56c0e initial revision
[SVN r15202]
2002-09-08 09:58:13 +00:00
Paul Mensonides ce2f5ccec1 intial revision
[SVN r15201]
2002-09-08 09:57:18 +00:00
Paul Mensonides dcb69eaaa1 initial revision cleanup
[SVN r15200]
2002-09-08 09:45:41 +00:00
Paul Mensonides b1733ed82c initial revision
[SVN r15199]
2002-09-08 09:41:42 +00:00
Paul Mensonides cdc4be5256 initial revision
[SVN r15198]
2002-09-08 09:40:56 +00:00
Paul Mensonides cb61e12209 initial revision
[SVN r15197]
2002-09-08 09:24:32 +00:00
Dave Abrahams 76e9f915b7 CWPro8.2 patches
[SVN r14999]
2002-08-20 16:33:43 +00:00
Beman Dawes 7825392dc5 init commit
[SVN r14977]
2002-08-19 23:29:18 +00:00
Paul Mensonides 553cee40bd high resolution support
[SVN r14556]
2002-07-22 05:50:19 +00:00
Paul Mensonides 89e4b06d8a high-resolution support
[SVN r14555]
2002-07-22 05:49:24 +00:00
Paul Mensonides 47baba7c49 shared temporary digit processing
[SVN r14554]
2002-07-22 05:49:00 +00:00
Vesa Karvonen 25054a1ee1 Removed tabs...
[SVN r14481]
2002-07-16 14:55:24 +00:00
Paul Mensonides 00dad65868 BOOST_PP_LOCAL_ITERATION_LIMITS --> BOOST_PP_LOCAL_LIMITS
[SVN r14401]
2002-07-10 19:30:49 +00:00
Paul Mensonides 8e47cb7560 added BOOST_PP_SLOT_MAX
[SVN r14400]
2002-07-10 18:03:58 +00:00
Paul Mensonides 015ac9cb2e unified array interface
[SVN r14387]
2002-07-10 06:29:05 +00:00
Paul Mensonides 6eedec544f fixed undefined behavior
[SVN r14386]
2002-07-10 06:28:31 +00:00
Paul Mensonides 864019147a fixed undefined behavior
[SVN r14385]
2002-07-09 20:40:00 +00:00
Aleksey Gurtovoy f7fefa2a1f bumped up __MWERKS__ version check for 8.1
[SVN r14369]
2002-07-09 14:01:46 +00:00
Dave Abrahams c1d0b219ac Work around GCC problem caused by space
[SVN r14366]
2002-07-09 10:00:21 +00:00
Paul Mensonides 26b15f8280 MWCW fixes
[SVN r14333]
2002-07-07 22:39:15 +00:00
Paul Mensonides 99ad0e4521 relocated slot interface
[SVN r14332]
2002-07-07 22:20:50 +00:00
Paul Mensonides f00446c3ab modified detail line
[SVN r14331]
2002-07-07 22:19:23 +00:00
Paul Mensonides e192e93d0b flag support
[SVN r14330]
2002-07-07 22:18:31 +00:00
Paul Mensonides cc650688ad obtuse detail line directives
[SVN r14329]
2002-07-07 22:17:51 +00:00
Paul Mensonides 4908f58ea3 built-in flag support
[SVN r14328]
2002-07-07 22:16:26 +00:00
Paul Mensonides 60de301d1f mechanism uses open-ended array
[SVN r14327]
2002-07-07 22:15:08 +00:00
Paul Mensonides 328a52eaaa line directive changes
[SVN r14326]
2002-07-07 22:14:28 +00:00
Paul Mensonides 37d50a375a array data structure support
[SVN r14325]
2002-07-07 22:12:25 +00:00
Vesa Karvonen 72727d6d7f Reduced delay
[SVN r14321]
2002-07-07 12:39:43 +00:00
Paul Mensonides 1fec028b57 moved slot interface to slot.hpp
[SVN r14297]
2002-07-04 05:50:50 +00:00
Paul Mensonides 3fe7d6d06a moved slot implementation
[SVN r14296]
2002-07-04 05:49:41 +00:00
Paul Mensonides 75a207b54d evaluated slots moved to separate file
[SVN r14295]
2002-07-04 05:43:11 +00:00
Paul Mensonides 93675ab566 added BOOST_PP_SLOT_LIMIT
[SVN r14268]
2002-07-01 02:08:46 +00:00
Paul Mensonides 216dcaedef cleaned up files
[SVN r14267]
2002-06-30 09:17:09 +00:00
Paul Mensonides d2c179a6aa brought forced evaluation in line w/slots
[SVN r14266]
2002-06-30 09:16:28 +00:00
Paul Mensonides a8434508d7 evaluated slot support
[SVN r14265]
2002-06-30 09:14:58 +00:00
Paul Mensonides b290c9372b added evaluated slot support
[SVN r14264]
2002-06-30 09:13:09 +00:00
Paul Mensonides 842540fcc1 modified name
[SVN r14257]
2002-06-28 05:03:39 +00:00
Paul Mensonides 8b9c75bb07 names changes
[SVN r14251]
2002-06-27 21:05:02 +00:00
Paul Mensonides e0a31fdd3f small bug fix - extra text
[SVN r14231]
2002-06-24 07:44:16 +00:00
Paul Mensonides a729a63410 support for absolute iteration depth access
[SVN r14230]
2002-06-24 07:42:30 +00:00
Paul Mensonides 1ed20a224a support of MWCW line directives
[SVN r14229]
2002-06-24 07:35:29 +00:00
Paul Mensonides 0b4d289c85 support for MWCW line directives
[SVN r14228]
2002-06-24 07:35:00 +00:00
Vesa Karvonen 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
Paul Mensonides d574738487 reverted some C++ style comments to C
[SVN r14225]
2002-06-22 04:24:39 +00:00
Paul Mensonides 851fbc63b8 added BOOST_PP_INCLUDE_SELF()
[SVN r14224]
2002-06-21 23:14:11 +00:00
Paul Mensonides 93a331152d Cpp output cleanup
[SVN r14223]
2002-06-21 23:13:24 +00:00
Paul Mensonides 7f923e81e1 indirect file inclusion
[SVN r14222]
2002-06-21 23:08:36 +00:00
Paul Mensonides 31a8d42f8a renamed BOOST_PP_LOCAL_LIMITS to BOOST_PP_LOCAL_ITERATION_LIMITS
[SVN r14220]
2002-06-21 01:37:30 +00:00
Vesa Karvonen 1561ca793c Learning through (stupid) mistakes...
[SVN r14217]
2002-06-20 18:30:31 +00:00
Vesa Karvonen 770a0ffec6 Fixed comment bug
[SVN r14216]
2002-06-20 18:22:28 +00:00
Vesa Karvonen 1015d853f3 Extending TUPLE_LIMIT to 32
[SVN r14214]
2002-06-20 15:53:24 +00:00
Vesa Karvonen b36731a3d9 Removed // comments from comment (to emphasize C compatibility)
[SVN r14211]
2002-06-20 13:31:55 +00:00
Vesa Karvonen 58f88acce6 Increased TUPLE_LIMIT to 32
[SVN r14210]
2002-06-20 12:58:55 +00:00
Paul Mensonides 8b9dcd7849 bug fixes, and filename support
[SVN r14207]
2002-06-20 07:25:26 +00:00
Paul Mensonides 8e2c98f5bc removed unnecessary default lower boundary
[SVN r14206]
2002-06-20 07:01:59 +00:00
Paul Mensonides 3899e96e81 modified upper/lower bound interface
[SVN r14205]
2002-06-20 07:01:10 +00:00
Paul Mensonides 71bd1a7838 minor support of arithmetic expressions
[SVN r14203]
2002-06-20 05:23:31 +00:00
Paul Mensonides 8916f28480 file-iteration support
[SVN r14202]
2002-06-20 03:07:09 +00:00
Paul Mensonides 3e00e24170 upper bound abstraction
[SVN r14201]
2002-06-20 03:05:59 +00:00
Paul Mensonides 34b5b7e8b2 lower bound abstraction
[SVN r14200]
2002-06-20 03:04:41 +00:00
Paul Mensonides bc9a5ef5f2 local (simple) iteration
[SVN r14199]
2002-06-20 03:02:50 +00:00
Paul Mensonides 23fbdffd78 5th-level iteration
[SVN r14198]
2002-06-20 03:01:37 +00:00
Paul Mensonides 36686c4409 4th-level iteration
[SVN r14197]
2002-06-20 03:01:24 +00:00
Paul Mensonides 6c05aac1a4 3rd-level iteration
[SVN r14196]
2002-06-20 03:01:09 +00:00
Paul Mensonides ca54dc0ae2 2nd-level iteration
[SVN r14195]
2002-06-20 03:00:53 +00:00
Paul Mensonides 19174bc890 1st-level iteration
[SVN r14194]
2002-06-20 03:00:30 +00:00
Aleksey Gurtovoy a705b07516 more MW CodeWarrior fixes
[SVN r14192]
2002-06-20 01:20:25 +00:00
Aleksey Gurtovoy 9891ed94d9 MW CodeWarrior fixes
[SVN r14191]
2002-06-20 00:24:10 +00:00
Paul Mensonides e5875d57c8 modified EDG test
[SVN r14184]
2002-06-19 19:10:40 +00:00
Dave Abrahams ebfcf12ef1 formatting
[SVN r14181]
2002-06-19 13:37:09 +00:00
Dave Abrahams 89782cd9be CodeWarrior workaround
[SVN r14180]
2002-06-19 13:36:43 +00:00
Paul Mensonides 5652ca0d38 minor bug fix
[SVN r14179]
2002-06-19 07:16:40 +00:00
Paul Mensonides b4919e62f4 add support for unrolled BOOST_PP_REPEAT undef EDG front-ends
[SVN r14178]
2002-06-19 06:39:33 +00:00
Paul Mensonides bcd091a8dd add support for unrolled BOOST_PP_REPEAT undef EDG front-ends
[SVN r14177]
2002-06-19 06:38:43 +00:00
Paul Mensonides dff892a1b0 unrolled BOOST_PP_REPEAT's
[SVN r14176]
2002-06-19 06:37:29 +00:00
Paul Mensonides 37f823fd4a reinserted delay macros
[SVN r14171]
2002-06-18 21:54:30 +00:00
Dave Abrahams 6a7259a48d Committed fixes from Paul Mensonides
[SVN r14161]
2002-06-17 11:03:00 +00:00
Vesa Karvonen 54c727bfe3 2nd attempt to workaround VC6 preprocessor bug by increasing rescanning
[SVN r14158]
2002-06-16 21:15:23 +00:00
Vesa Karvonen cd503a0d89 Attempt to workaround VC6 preprocessor bug by increasing rescanning
[SVN r14155]
2002-06-16 20:23:00 +00:00
Vesa Karvonen 8792bd705a Removed MWCW workarounds from tests - tests are now less strict
[SVN r14152]
2002-06-16 09:20:03 +00:00
Vesa Karvonen 44b60d95ad Removed MWCW workarounds from tests - tests are now less strict
[SVN r14151]
2002-06-16 09:11:48 +00:00
Vesa Karvonen cbe5e0fa9f New O(N*N) space and O(1) time BOOST_PP_TUPLE_ELEM()
[SVN r14150]
2002-06-16 08:08:00 +00:00
Vesa Karvonen 8854c2c573 O(N*N) space and O(1) time BOOST_PP_TUPLE_ELEM()
[SVN r14149]
2002-06-16 08:06:36 +00:00
Vesa Karvonen 54d0da5221 Using private detail CAT to avoid DELAY macros
[SVN r14147]
2002-06-14 20:38:54 +00:00
Vesa Karvonen 5e0488f509 Removed commas from constant expression
[SVN r14116]
2002-06-09 18:18:27 +00:00
Aleksey Gurtovoy 22c81b2b3f MSVC fixes
[SVN r14109]
2002-06-08 06:21:19 +00:00
Vesa Karvonen f5a7b0be75 Doc fix
[SVN r14108]
2002-06-08 00:10:24 +00:00
Vesa Karvonen 032860a124 Simplified a test
[SVN r14107]
2002-06-08 00:06:07 +00:00
Vesa Karvonen 0bd2709266 Attempt to avoid preprocessor rescan bugs by increasing the amount of rescanning
[SVN r14106]
2002-06-07 22:54:19 +00:00
Vesa Karvonen 1884cf8a78 Attempt to avoid preprocessor rescan bugs by increasing the amount of rescanning
[SVN r14105]
2002-06-07 22:45:51 +00:00
Vesa Karvonen 9f9048e805 Automatic recursion
[SVN r14100]
2002-06-07 13:04:18 +00:00
Vesa Karvonen a18d5f79fc Removed obsoleted BOOST_PREPROCESSOR_??? macros
[SVN r14099]
2002-06-07 12:56:54 +00:00
Vesa Karvonen ec1d6932d4 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14098]
2002-06-07 12:52:41 +00:00
Vesa Karvonen 33ba22e0f6 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14097]
2002-06-07 12:43:59 +00:00
Vesa Karvonen f1bec9eda8 Removed BOOST_PREPROCESSOR_??? macros
[SVN r14096]
2002-06-07 12:26:56 +00:00
Vesa Karvonen 760c4206b4 pre
[SVN r13974]
2002-05-18 12:53:05 +00:00
Vesa Karvonen def1674ee7 Header info
[SVN r13970]
2002-05-17 21:24:59 +00:00
Vesa Karvonen 330045d332 boost.css
[SVN r13957]
2002-05-16 22:24:11 +00:00
Vesa Karvonen ab81a9c869 boost.css
[SVN r13956]
2002-05-16 22:17:39 +00:00
Vesa Karvonen bf45543e2f Minor optimization
[SVN r13552]
2002-04-23 15:17:27 +00:00
Vesa Karvonen aa738488be Minor optimization on BOOST_PP_TUPLE_ELEM()
[SVN r13550]
2002-04-23 14:56:38 +00:00
Vesa Karvonen bfd89be28b Renamed 1 character parameter names
[SVN r13549]
2002-04-23 13:52:36 +00:00
Vesa Karvonen b899890a46 Renamed 1 character parameter names
[SVN r13548]
2002-04-23 12:55:48 +00:00
Vesa Karvonen 34c788f3a0 Changed syntax of half-open range
[SVN r13491]
2002-04-15 06:49:49 +00:00
Vesa Karvonen 19962553a5 Removed obsolete functions from the reference.
[SVN r13474]
2002-04-13 11:14:50 +00:00
Vesa Karvonen 336749e0ae Added requirements on numeric parameters
[SVN r13460]
2002-04-12 12:16:05 +00:00
Vesa Karvonen 06ff87a86c Longer macro parameter names
[SVN r13459]
2002-04-12 11:26:25 +00:00
Vesa Karvonen 3468956bc9 Added FROM_TO repetition macros.
[SVN r13364]
2002-04-04 08:23:26 +00:00
Vesa Karvonen acb748ed77 Removed plan
[SVN r13177]
2002-03-11 20:16:24 +00:00
Vesa Karvonen fcd4b15cdf Renamed BOOST_PP_IF_THEN to BOOST_PP_EXPR_IF
[SVN r13173]
2002-03-11 16:11:34 +00:00
Vesa Karvonen a3e207e706 Docs updated
[SVN r13170]
2002-03-10 15:15:41 +00:00
Vesa Karvonen 03b37c307f Docs updated
[SVN r13169]
2002-03-10 12:31:37 +00:00
Vesa Karvonen 7202e6b56e Removed MWCW version number test from workarounds
[SVN r13166]
2002-03-10 08:27:13 +00:00
Vesa Karvonen 1ad72e98a9 Docs update
[SVN r13144]
2002-03-09 13:55:00 +00:00
Vesa Karvonen da66351f86 Docs updates
[SVN r13142]
2002-03-09 08:57:33 +00:00
Vesa Karvonen 140a30f6f4 Fixed off-by-one error in documentation
[SVN r13129]
2002-03-08 13:27:37 +00:00
Vesa Karvonen 717666e5d4 Added BOOST_PP_IF_THEN
[SVN r13127]
2002-03-08 07:30:26 +00:00
Vesa Karvonen 7980b6e377 Added a link page to the examples
[SVN r13126]
2002-03-08 06:18:57 +00:00
Vesa Karvonen 2b9fee0cff How to make longer lists
[SVN r13037]
2002-03-03 08:39:30 +00:00
Vesa Karvonen 0b714a0ce7 Fixed embarrassing bug at N=0
[SVN r12951]
2002-02-27 07:42:00 +00:00
Vesa Karvonen 8a557b560b Added Duff's Device example
[SVN r12949]
2002-02-27 05:54:07 +00:00
Vesa Karvonen 2fc11e125a Added BOOST_PP_LIST_FOR_EACH_I
[SVN r12928]
2002-02-24 19:57:25 +00:00
Vesa Karvonen 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
Vesa Karvonen 23a1e16489 Some doc updates
[SVN r12926]
2002-02-24 07:45:22 +00:00
Vesa Karvonen 5fa1ddda5a Added ???_R and ???_D macros to reference
[SVN r12910]
2002-02-23 10:50:32 +00:00
Vesa Karvonen dba7ae68c7 Added ???_D and ???_R names
[SVN r12909]
2002-02-23 10:28:28 +00:00
Vesa Karvonen 0681e43c79 Doxygen is out
[SVN r12908]
2002-02-23 10:26:09 +00:00
Vesa Karvonen 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
Vesa Karvonen 4834a1927b Added BOOST_PP_FOLD_RIGHT_2ND
[SVN r12896]
2002-02-22 11:03:40 +00:00
Vesa Karvonen ffef0494ce Added BOOST_PP_FOLD_LEFT_2ND
[SVN r12895]
2002-02-22 10:40:34 +00:00
Vesa Karvonen 86be4492a3 Added BOOST_PP_FOLD_LEFT_2ND()
[SVN r12894]
2002-02-22 10:38:40 +00:00
Vesa Karvonen 6229f991c8 Added timestamp
[SVN r12893]
2002-02-22 07:39:56 +00:00
Vesa Karvonen 4c6d309384 MWCW workaround
[SVN r12760]
2002-02-08 16:54:43 +00:00
Vesa Karvonen 332e6a9ac4 Fixed title decoration
[SVN r12730]
2002-02-05 16:16:04 +00:00
Vesa Karvonen 485782792a Bibliography instead of References
[SVN r12729]
2002-02-05 16:14:26 +00:00
Vesa Karvonen 30da4c621b Minor simplification
[SVN r12726]
2002-02-05 12:42:59 +00:00
Vesa Karvonen 12b58b5b34 Added test for BOOST_PP_LIST_SIZE
[SVN r12725]
2002-02-05 12:20:00 +00:00
Vesa Karvonen ce975e7b9f Changed to recommended usage style of BOOST_PP_EMPTY & BOOST_PP_IDENTITY
[SVN r12724]
2002-02-05 12:19:33 +00:00
Vesa Karvonen 0fc08260e2 Added link to test
[SVN r12723]
2002-02-05 12:17:12 +00:00
Vesa Karvonen a13076a3c6 Updated
[SVN r12722]
2002-02-05 12:16:25 +00:00
Vesa Karvonen 363ca22cc2 Updated
[SVN r12721]
2002-02-05 12:13:37 +00:00
Vesa Karvonen b8259b1cc9 Added link to test
[SVN r12720]
2002-02-05 12:12:07 +00:00
Vesa Karvonen 3805c6f71d Added test for BOOST_PP_LIST_FOR_EACH_PRODUCT()
[SVN r12719]
2002-02-05 11:30:34 +00:00
Vesa Karvonen 41d99b49e4 Starting to use the new templates
[SVN r12718]
2002-02-05 08:27:20 +00:00
Vesa Karvonen 6248559797 Doc fix
[SVN r12717]
2002-02-05 07:37:59 +00:00
Vesa Karvonen 6f18b29f39 Removed broken stylesheet link
[SVN r12700]
2002-02-04 19:42:54 +00:00
Vesa Karvonen 6bfd1b65f1 Bug fix
[SVN r12694]
2002-02-04 15:19:08 +00:00
Vesa Karvonen ba2c70ef83 Updated docs
[SVN r12693]
2002-02-04 15:02:59 +00:00
Vesa Karvonen 00d4dc6155 Updated
[SVN r12692]
2002-02-04 15:00:30 +00:00
Vesa Karvonen cda5e36015 Update
[SVN r12691]
2002-02-04 14:57:59 +00:00
Vesa Karvonen 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
Vesa Karvonen 8432192ac0 Updated docs
[SVN r12687]
2002-02-04 13:32:28 +00:00
Vesa Karvonen 6fa0d837a3 Enhancing docs
[SVN r12620]
2002-02-01 11:41:38 +00:00
Vesa Karvonen d791b3f756 Working on docs
[SVN r12619]
2002-02-01 11:40:52 +00:00
Vesa Karvonen 3b7418f9ce Working on docs
[SVN r12612]
2002-01-31 21:52:46 +00:00
Vesa Karvonen b9f6fe1795 Example on using BOOST_PP_WHILE()
[SVN r12611]
2002-01-31 21:14:39 +00:00
Vesa Karvonen cc15a18bf6 More examples
[SVN r12609]
2002-01-31 18:30:49 +00:00
Vesa Karvonen 4231b56bb1 HTML fix
[SVN r12608]
2002-01-31 17:21:59 +00:00
Vesa Karvonen 28ead7541e Using BOOST_PP_LIST_CAT()
[SVN r12607]
2002-01-31 16:35:35 +00:00
Vesa Karvonen b9fc39ddd5 New reference
[SVN r12606]
2002-01-31 15:36:01 +00:00
Vesa Karvonen 2261c57310 Tweaking docs
[SVN r12604]
2002-01-31 14:21:31 +00:00
Vesa Karvonen f1590b8c08 Tweaking docs
[SVN r12602]
2002-01-31 13:16:47 +00:00
Vesa Karvonen 31b1b43b9f Improving docs
[SVN r12598]
2002-01-31 08:12:31 +00:00
Vesa Karvonen 756563fb76 Working on docs.
[SVN r12587]
2002-01-30 19:53:52 +00:00
Vesa Karvonen e8b6627a48 Working on docs
[SVN r12586]
2002-01-30 19:52:31 +00:00
Vesa Karvonen 460db18e02 Documentation in progress
[SVN r12585]
2002-01-30 17:54:36 +00:00
Vesa Karvonen ae7ca5e40d Renamed delay.cpp to delay.c
[SVN r12579]
2002-01-30 14:58:05 +00:00
Vesa Karvonen 704705aebe Who needs templates anyway? :)
[SVN r12578]
2002-01-30 14:57:31 +00:00
Vesa Karvonen 7e20901c38 Ported to MSVC++ and MWCW.
[SVN r12577]
2002-01-30 14:47:44 +00:00
Vesa Karvonen 84a46d253a Added BOOST_PP_LIST_FOR_EACH_PRODUCT
[SVN r12572]
2002-01-30 10:23:09 +00:00
Vesa Karvonen 18ae25d5e5 LIST_FOR_EACH_PRODUCT() added to library
[SVN r12571]
2002-01-30 10:22:13 +00:00
Vesa Karvonen 9d401687ef Added but not documented LIST_FOR_EACH_PRODUCT()
[SVN r12570]
2002-01-30 10:16:39 +00:00
Vesa Karvonen d0f812ce7e Acknowledged Chris Little and Mat Marcus.
[SVN r12569]
2002-01-30 08:10:52 +00:00
Vesa Karvonen 6b50ff7484 Refinements
[SVN r12555]
2002-01-29 15:06:47 +00:00
Vesa Karvonen 59180fab96 Somewhat more C friendly. Uses templates...
[SVN r12554]
2002-01-29 14:30:09 +00:00
Vesa Karvonen 9e361682af Somewhat more C friendly. Some tests use templates.
[SVN r12553]
2002-01-29 14:28:42 +00:00
Vesa Karvonen df1244ba20 Preprocessor library is now C friendly.
[SVN r12552]
2002-01-29 14:13:10 +00:00
Vesa Karvonen 972f6222d1 Updated plan
[SVN r12549]
2002-01-29 12:56:26 +00:00
Vesa Karvonen 418a1a5654 Refinements
[SVN r12547]
2002-01-29 12:24:55 +00:00
Vesa Karvonen 3fce5e9ef9 Refinements
[SVN r12546]
2002-01-29 12:02:11 +00:00
Vesa Karvonen 9ff3bf1455 Now takes only a couple of minutes to compile.
[SVN r12545]
2002-01-29 10:48:45 +00:00
Vesa Karvonen 409f93a5d6 Fix
[SVN r12544]
2002-01-29 10:02:23 +00:00
Vesa Karvonen 9fd20dc4e2 Refinements
[SVN r12543]
2002-01-29 09:20:56 +00:00
Vesa Karvonen 318494b610 Added a simple example on using BOOST_PP_LIST_FOR_EACH()
[SVN r12541]
2002-01-29 08:37:56 +00:00
Vesa Karvonen 2c352e415d Separated unary and binary operators
[SVN r12540]
2002-01-29 07:39:06 +00:00
Vesa Karvonen 035c5abcd0 Who needs templates anyway!
[SVN r12537]
2002-01-28 16:17:56 +00:00
Vesa Karvonen 1fc3933855 MWCW workaround
[SVN r12506]
2002-01-25 15:26:51 +00:00
Vesa Karvonen 0021c42186 Minor technical detail added
[SVN r12499]
2002-01-25 13:54:07 +00:00
Vesa Karvonen 6d04d3068b MWCW workarounds
[SVN r12497]
2002-01-25 13:15:56 +00:00
Vesa Karvonen e481dd2824 Removed doxygen version from generated docs - avoids redundant updates!
[SVN r12496]
2002-01-25 13:14:30 +00:00
Vesa Karvonen 18f3c4b6ae MWCW workarounds
[SVN r12494]
2002-01-25 13:00:03 +00:00
Vesa Karvonen 7fe7c1cb6b Reduced maximum recursion depth requirement
[SVN r12484]
2002-01-24 17:09:40 +00:00
Vesa Karvonen 8c690013f4 Added DELAY() example
[SVN r12479]
2002-01-24 15:58:43 +00:00
Vesa Karvonen 64e6a56ad0 Minor optimization
[SVN r12478]
2002-01-24 14:06:21 +00:00
Vesa Karvonen 28f575096e Minor optimizations
[SVN r12474]
2002-01-24 13:19:20 +00:00
Vesa Karvonen 7413d48c47 Minor optimizations
[SVN r12466]
2002-01-23 19:10:47 +00:00
Vesa Karvonen b6dbf78f24 Added a test without rescan
[SVN r12465]
2002-01-23 18:58:18 +00:00
Vesa Karvonen 1bfd0f8c40 Minor optimizations
[SVN r12462]
2002-01-23 17:20:54 +00:00
Vesa Karvonen e2d7a2559a Minor optimizations
[SVN r12460]
2002-01-23 16:41:44 +00:00
Vesa Karvonen 6c66df95c8 Minor optimization of list processing
[SVN r12458]
2002-01-23 15:16:21 +00:00
Vesa Karvonen f58a5b4e7d BOOST_PP_LIMIT_TUPLE extended to 16
[SVN r12452]
2002-01-23 11:28:10 +00:00
Vesa Karvonen 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
Vesa Karvonen 09546e072c BOOST_PP_EXPAND now used only as a workaround
[SVN r12441]
2002-01-22 13:41:53 +00:00
Vesa Karvonen 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
Vesa Karvonen 0724dd58dc Removed apparently redundant uses of BOOST_PP_EXPAND()
[SVN r12438]
2002-01-22 13:35:09 +00:00
Vesa Karvonen aeea661a59 Recognized MSVC++ workaround
[SVN r12437]
2002-01-22 13:33:39 +00:00
Vesa Karvonen fa88c0d360 Changed implementation to allow macro expansion of macro arguments
[SVN r12436]
2002-01-22 13:32:06 +00:00
Vesa Karvonen 178a8ab429 Added list data structure
[SVN r12433]
2002-01-22 10:29:42 +00:00
Vesa Karvonen 0206bbaa60 Added list data structure
[SVN r12431]
2002-01-22 10:18:08 +00:00
Vesa Karvonen e562e2478b Update documentation
[SVN r12400]
2002-01-21 19:21:24 +00:00
Vesa Karvonen e1af246b06 2D repetition example added to documentation
[SVN r12399]
2002-01-21 19:18:51 +00:00
Vesa Karvonen c518362505 C/C++ -> C++
[SVN r12398]
2002-01-21 19:17:40 +00:00
Vesa Karvonen a07e8b26b7 Minor documentation change
[SVN r12397]
2002-01-21 19:05:49 +00:00
Vesa Karvonen 255317ea1b Changed primary e-mail address for Boost development
[SVN r12377]
2002-01-20 19:45:23 +00:00
Vesa Karvonen 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
Vesa Karvonen fbea3f4f9f Increased repetition count of the test to reveal performance issues
[SVN r12373]
2002-01-20 17:42:29 +00:00
Vesa Karvonen 3789decea9 Better browsing support
[SVN r12371]
2002-01-20 16:49:07 +00:00
Vesa Karvonen e4516ada6a Added BOOST_PP_FOR, BOOST_PP_ENUM, BOOST_PP_ENUM_SHIFTED
[SVN r12370]
2002-01-20 16:31:41 +00:00
Vesa Karvonen b98a594400 Added BOOST_PP_FOR
[SVN r12369]
2002-01-20 16:29:23 +00:00
Vesa Karvonen 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
Vesa Karvonen 7653a0a42a Documentation terminology corrected: function -> macro
[SVN r12363]
2002-01-19 20:22:43 +00:00
Vesa Karvonen 03e35a4408 Added BOOST_PP_EXPAND()
[SVN r12362]
2002-01-19 20:14:32 +00:00
Vesa Karvonen 609357592a Added BOOST_PP_TUPLE_EAT
[SVN r12325]
2002-01-15 16:58:55 +00:00
Vesa Karvonen ea1c66e021 tuple.hpp split.
[SVN r12297]
2002-01-13 15:54:51 +00:00
Vesa Karvonen 90e8e9557e BOOST_PP_EAT() added & tuple.hpp split.
[SVN r12296]
2002-01-13 15:53:15 +00:00
Vesa Karvonen 6644430159 TUPLE_EAT added
[SVN r12295]
2002-01-13 15:42:53 +00:00
Vesa Karvonen a4dc24ae7c IF uses TUPLE_ELEM to remove two macros
[SVN r12294]
2002-01-13 15:27:25 +00:00
Vesa Karvonen 590d3be836 tuple functionality will be divided into multiple headers
[SVN r12293]
2002-01-13 15:23:50 +00:00
Vesa Karvonen 4835f0392d minor comment change
[SVN r12292]
2002-01-13 15:17:02 +00:00
Vesa Karvonen 5adad67c89 Minor changes.
[SVN r12206]
2002-01-03 14:56:18 +00:00
Vesa Karvonen 1f2380191c Bug fix: missing type in TEST() macro.
[SVN r12174]
2001-12-31 11:26:55 +00:00
Vesa Karvonen d8b52a3a42 PREPROCESSOR -> PP. WHILE documented.
[SVN r12162]
2001-12-28 11:06:53 +00:00
Vesa Karvonen 5991b00456 Removed unnecessary #includes.
[SVN r12161]
2001-12-28 11:05:11 +00:00
Vesa Karvonen aa53f0052b Split unit test for more fine grained test results
[SVN r12159]
2001-12-28 08:41:34 +00:00
Dave Abrahams 7b1499c976 bumped workaround number to accomodate CodeWarrior beta compiler
[SVN r12124]
2001-12-19 21:30:15 +00:00
Vesa Karvonen 6218e5799d Reduced recursion depths due to excessive compile times on EDG
[SVN r12082]
2001-12-17 15:33:10 +00:00
Vesa Karvonen f6d5ec02a8 Removed MUL(50,50), because it takes too much time on some compilers
[SVN r12013]
2001-12-11 07:58:08 +00:00
Vesa Karvonen 27466e7d4d Lowered implicitly tested maximum iteration depth slightly
[SVN r12011]
2001-12-10 22:27:07 +00:00
Vesa Karvonen a612153a59 Added MOD
[SVN r12010]
2001-12-10 22:15:42 +00:00
Vesa Karvonen cd69e240b3 Added MOD and implemented ADD, SUB & MUL using WHILE reducing internal repetition
[SVN r12009]
2001-12-10 22:11:42 +00:00
Vesa Karvonen ef938f3335 Removed confusing #include information
[SVN r11987]
2001-12-09 14:30:29 +00:00
Vesa Karvonen 90f8bb2304 Compressed while implementation
[SVN r11942]
2001-12-05 22:24:23 +00:00
Vesa Karvonen 692025092b Fixed long file names
[SVN r11933]
2001-12-05 18:21:47 +00:00
Vesa Karvonen 4c2d36fad3 *** empty log message ***
[SVN r11931]
2001-12-05 17:02:26 +00:00
Vesa Karvonen 40de542d88 CodeWarrior workaround
[SVN r11930]
2001-12-05 16:53:42 +00:00
Vesa Karvonen 0e7988bb46 Minor updates
[SVN r11889]
2001-12-03 22:29:23 +00:00
Vesa Karvonen 5eae85ecd9 Apparently the doxygen generated style sheet was not used.
[SVN r11886]
2001-12-03 21:36:46 +00:00
Vesa Karvonen 0dd5c9fe3d Removed doxygen.gif - it is not needed
[SVN r11885]
2001-12-03 21:33:51 +00:00
Vesa Karvonen d9ab221221 Reference document generation files
[SVN r11884]
2001-12-03 21:27:13 +00:00
Vesa Karvonen 7b5dd2ba63 Official copyright holder in Finland is "Housemarque Oy"
[SVN r11883]
2001-12-03 21:20:27 +00:00
Vesa Karvonen 4eac3f9372 Official copyright holder in Finland is "Housemarque Oy"
[SVN r11880]
2001-12-03 21:11:11 +00:00
Vesa Karvonen f380b1a2d3 Moved test rationale to test code file
[SVN r11878]
2001-12-03 20:58:50 +00:00
1070 changed files with 186107 additions and 7026 deletions
+52
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
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
+643
View File
@@ -0,0 +1,643 @@
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"
container: ubuntu:18.04
os: ubuntu-latest
install: g++-4.8
- toolset: gcc-5
cxxstd: "03,11,14,1z"
container: ubuntu:18.04
os: ubuntu-latest
install: g++-5
- toolset: gcc-6
cxxstd: "03,11,14,1z"
container: ubuntu:18.04
os: ubuntu-latest
install: g++-6
- toolset: gcc-7
cxxstd: "03,11,14,17"
container: ubuntu:18.04
os: ubuntu-latest
install: g++-7
- toolset: gcc-8
cxxstd: "03,11,14,17,2a"
container: ubuntu:18.04
os: ubuntu-latest
install: g++-8
- toolset: gcc-9
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
- toolset: gcc-10
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: g++-10
- toolset: gcc-11
cxxstd: "03,11,14,17,2a"
os: ubuntu-22.04
install: g++-11
- toolset: gcc-12
cxxstd: "03,11,14,17,20,2b"
os: ubuntu-22.04
install: g++-12
- toolset: gcc-13
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
install: g++-13
- toolset: gcc-14
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
install: g++-14
- toolset: clang
compiler: clang++-3.9
cxxstd: "03,11,14"
container: ubuntu:18.04
os: ubuntu-latest
install: clang-3.9
- toolset: clang
compiler: clang++-4.0
cxxstd: "03,11,14"
container: ubuntu:18.04
os: ubuntu-latest
install: clang-4.0
- toolset: clang
compiler: clang++-5.0
cxxstd: "03,11,14,1z"
container: ubuntu:18.04
os: ubuntu-latest
install: clang-5.0
- toolset: clang
compiler: clang++-6.0
cxxstd: "03,11,14,17"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-6.0
- toolset: clang
compiler: clang++-7
cxxstd: "03,11,14,17"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-7
- toolset: clang
compiler: clang++-8
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-8
- toolset: clang
compiler: clang++-9
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-9
- toolset: clang
compiler: clang++-10
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-10
- toolset: clang
compiler: clang++-11
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-11
- toolset: clang
compiler: clang++-12
cxxstd: "03,11,14,17,2a"
container: ubuntu:20.04
os: ubuntu-latest
install: clang-12
- toolset: clang
compiler: clang++-13
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:22.04
os: ubuntu-latest
install: clang-13
- toolset: clang
compiler: clang++-14
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:22.04
os: ubuntu-latest
install: clang-14
- toolset: clang
compiler: clang++-15
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:22.04
os: ubuntu-latest
install: clang-15
- toolset: clang
compiler: clang++-16
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
install: clang-16
- toolset: clang
compiler: clang++-17
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
install: clang-17
- toolset: clang
compiler: clang++-18
cxxstd: "03,11,14,17,20,2b"
container: ubuntu:24.04
os: ubuntu-latest
install: clang-18
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-13
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-14
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-15
runs-on: ${{matrix.os}}
container:
image: ${{matrix.container}}
volumes:
- /node20217:/node20217:rw,rshared
- ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
defaults:
run:
shell: bash
steps:
- name: Setup container environment
if: matrix.container
run: |
apt-get update
apt-get -y install sudo python3 git g++ curl xz-utils
- name: Install nodejs20glibc2.17
if: ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
run: |
curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
ldd /__e/node20/bin/node
- uses: actions/checkout@v4
- name: Install packages
if: matrix.install
run: |
sudo apt-get update
sudo apt-get -y 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
python3 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-2022
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- 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-22.04
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install packages
if: matrix.install
run: sudo apt-get -y 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-22.04
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install packages
if: matrix.install
run: sudo apt-get -y 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-22.04
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install packages
if: matrix.install
run: sudo apt-get -y 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
windows-cmake-subdir:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
- os: windows-2025
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- 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%
- name: Use library with add_subdirectory (Debug)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test
mkdir __build__ && cd __build__
cmake ..
cmake --build . --config Debug
ctest --output-on-failure --no-tests=error -C Debug
- name: Use library with add_subdirectory (Release)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_subdir_test/__build__
cmake --build . --config Release
ctest --output-on-failure --no-tests=error -C Release
windows-cmake-install:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
- os: windows-2025
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- 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%
- name: Configure
shell: cmd
run: |
cd ../boost-root
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
- name: Install (Debug)
shell: cmd
run: |
cd ../boost-root/__build__
cmake --build . --target install --config Debug
- name: Install (Release)
shell: cmd
run: |
cd ../boost-root/__build__
cmake --build . --target install --config Release
- name: Use the installed library (Debug)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test && mkdir __build__ && cd __build__
cmake -DCMAKE_INSTALL_PREFIX=C:/cmake-prefix ..
cmake --build . --config Debug
ctest --output-on-failure --no-tests=error -C Debug
- name: Use the installed library (Release)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__
cmake --build . --config Release
ctest --output-on-failure --no-tests=error -C Release
windows-cmake-test:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
- os: windows-2025
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- 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%
- name: Configure
shell: cmd
run: |
cd ../boost-root
mkdir __build__ && cd __build__
cmake -DBOOST_INCLUDE_LIBRARIES=%LIBRARY% -DBUILD_TESTING=ON ..
- name: Build tests (Debug)
shell: cmd
run: |
cd ../boost-root/__build__
cmake --build . --target tests --config Debug
- name: Run tests (Debug)
shell: cmd
run: |
cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error -C Debug
- name: Build tests (Release)
shell: cmd
run: |
cd ../boost-root/__build__
cmake --build . --target tests --config Release
- name: Run tests (Release)
shell: cmd
run: |
cd ../boost-root/__build__
ctest --output-on-failure --no-tests=error -C Release
+348
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
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
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
+18
View File
@@ -0,0 +1,18 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# 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)
require-b2 5.2 ;
project /boost/preprocessor
;
explicit
[ alias boost_preprocessor : : :
: <include>include <library>$(boost_dependencies) ]
[ alias all : boost_preprocessor test ]
;
call-if : boost-library preprocessor
;
File diff suppressed because it is too large Load Diff
+58
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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">
<!--
© Copyright Housemarque Oy 2002© 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
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>
<!--
© Copyright Housemarque Oy 2002
© 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
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>© Copyright <a href="http://www.housemarque.com"
target="_top">Housemarque Oy</a> 2002</i> <br>
<i>© 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
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>© Copyright <a href="http://www.housemarque.com"
target="_top">Housemarque Oy</a> 2002</i> <br>
<i>© 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
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>© Copyright <a href="http://www.housemarque.com"
target="_top">Housemarque Oy</a> 2002</i> <br>
<i>© 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
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>© Copyright <a href="http://www.housemarque.com"
target="_top">Housemarque Oy</a> 2002</i> <br>
<i>© 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
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>
<!--
© Copyright Housemarque Oy 2002
© 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>
+196
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))
+51
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
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)
+61
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;
}
+49
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
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;
}
-334
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>© 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
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>
<!--
© Copyright Housemarque Oy 2002© 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>
+36
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
<br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+24
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>© 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>
+31
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+24
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>© 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>
+24
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>© 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>
+24
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>© 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>
+31
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+35
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+44
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
<br><i>© 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>
+35
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>© 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
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>Š Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>Š 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+35
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
<br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+29
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>© 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>
+30
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+32
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© Copyright Paul Mensonides 2002</i>
</br><i>© Copyright Edward Diener 2015</i>
</div>
<div style="margin-left: 0px;">
<p><small>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../../../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</small></p>
</div>
</body>
</html>
+30
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+28
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>© 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>
+32
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>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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>
+32
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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
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>© Copyright <a href="http://www.housemarque.com" target="_top">Housemarque Oy</a> 2002</i>
</br><i>© 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