moved all from preprocessor/traits/utility to preprocessor/traits/aux_

This commit is contained in:
Lorenzo Caminiti
2015-03-13 20:53:36 -07:00
parent 9761ce13f7
commit 39bbdcc4bd
38 changed files with 2511 additions and 2444 deletions

View File

@@ -121,7 +121,8 @@ def code():
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_{0}_(d, l, decl) \\
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_{0}_(d, l, \\
decl, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \\
d, decl BOOST_PP_NIL) \\
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -177,6 +178,7 @@ file.write('''
#include <boost/contract/ext_/preprocessor/traits/assertion/typedef.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/using.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/namespace.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/keyword/namespace.hpp>
#include <boost/contract/ext_/preprocessor/keyword/using.hpp>
#include <boost/contract/ext_/preprocessor/keyword/template.hpp>

View File

@@ -13,6 +13,7 @@
#include <boost/contract/ext_/preprocessor/traits/assertion/typedef.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/using.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/namespace.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/keyword/namespace.hpp>
#include <boost/contract/ext_/preprocessor/keyword/using.hpp>
#include <boost/contract/ext_/preprocessor/keyword/template.hpp>
@@ -172,7 +173,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_1_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_1_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -320,7 +322,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_2_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_2_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -468,7 +471,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_3_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_3_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -616,7 +620,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_4_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_4_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -764,7 +769,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_5_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_5_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -912,7 +918,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_6_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_6_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1060,7 +1067,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_7_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_7_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1208,7 +1216,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_8_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_8_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1356,7 +1365,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_9_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_9_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1504,7 +1514,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_10_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_10_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1652,7 +1663,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_11_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_11_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1800,7 +1812,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_12_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_12_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -1948,7 +1961,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_13_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_13_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2096,7 +2110,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_14_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_14_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2244,7 +2259,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_15_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_15_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2392,7 +2408,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_16_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_16_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2540,7 +2557,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_17_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_17_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2688,7 +2706,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_18_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_18_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2836,7 +2855,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_19_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_19_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -2984,7 +3004,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_20_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_20_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3132,7 +3153,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_21_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_21_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3280,7 +3302,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_22_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_22_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3428,7 +3451,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_23_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_23_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3576,7 +3600,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_24_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_24_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3724,7 +3749,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_25_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_25_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -3872,7 +3898,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_26_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_26_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4020,7 +4047,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_27_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_27_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4168,7 +4196,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_28_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_28_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4316,7 +4345,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_29_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_29_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4464,7 +4494,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_30_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_30_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4612,7 +4643,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_31_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_31_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4760,7 +4792,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_32_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_32_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -4908,7 +4941,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_33_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_33_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5056,7 +5090,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_34_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_34_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5204,7 +5239,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_35_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_35_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5352,7 +5388,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_36_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_36_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5500,7 +5537,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_37_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_37_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5648,7 +5686,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_38_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_38_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5796,7 +5835,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_39_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_39_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -5944,7 +5984,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_40_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_40_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6092,7 +6133,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_41_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_41_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6240,7 +6282,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_42_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_42_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6388,7 +6431,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_43_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_43_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6536,7 +6580,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_44_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_44_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6684,7 +6729,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_45_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_45_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6832,7 +6878,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_46_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_46_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -6980,7 +7027,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_47_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_47_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7128,7 +7176,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_48_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_48_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7276,7 +7325,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_49_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_49_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7424,7 +7474,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_50_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_50_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7572,7 +7623,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_51_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_51_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7720,7 +7772,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_52_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_52_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -7868,7 +7921,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_53_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_53_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8016,7 +8070,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_54_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_54_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8164,7 +8219,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_55_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_55_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8312,7 +8368,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_56_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_56_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8460,7 +8517,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_57_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_57_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8608,7 +8666,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_58_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_58_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8756,7 +8815,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_59_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_59_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -8904,7 +8964,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_60_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_60_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -9052,7 +9113,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_61_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_61_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -9200,7 +9262,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_62_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_62_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -9348,7 +9411,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_63_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_63_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.
@@ -9496,7 +9560,8 @@
#define BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_64_(d, l, decl) \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_HANDLE_RETURN_CHECK_64_(d, l, \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl BOOST_PP_NIL) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D( \
d, decl BOOST_PP_NIL) \
)
// decl = `auto-type something-but-not-paren ...` is passed to RETURN_MAYBE.

View File

@@ -2,8 +2,9 @@
#ifndef BOOST_CONTRACT_EXT_PP_CONST_ASSERTION_TRAITS_CAPTURES_HPP_
#define BOOST_CONTRACT_EXT_PP_CONST_ASSERTION_TRAITS_CAPTURES_HPP_
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/assertion_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/capture.hpp>
#include <boost/contract/ext_/preprocessor/keyword/const.hpp>
#include <boost/contract/ext_/preprocessor/paren/front.hpp>
@@ -45,7 +46,7 @@
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK( \
traits, \
BOOST_CONTRACT_EXT_PP_CONST_ASSERTION_TRAITS_PARAMS_EXPAND_TRAITS_(\
BOOST_CONTRACT_EXT_PP_FIXED_LIST_TRAITS_PARSE_D_ ## l(d , \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_FIXED_LIST_PARSE_D_ ## l(d , \
BOOST_CONTRACT_EXT_PP_PAREN_FRONT(decl), \
BOOST_CONTRACT_EXT_PP_CAPTURE_TRAITS_PARSE_D_L \
) \

View File

@@ -220,7 +220,7 @@ BOOST_CONTRACT_EXT_PP_IF_ASSERTION_TRAITS_REPLACE_ELSES_PARSE_YES_{0}_( \\
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK( \\
traits, \\
BOOST_CONTRACT_EXT_PP_IF_ASSERTION_TRAITS_EXPAND_TRAITS_{0}_( \\
BOOST_CONTRACT_EXT_PP_ENUM_LIST_TRAITS_PARSE_D_ ## l(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ENUM_LIST_PARSE_D_ ## l(d, \\
BOOST_CONTRACT_EXT_PP_PAREN_FRONT(decl), \\
BOOST_CONTRACT_EXT_PP_POST_ASSERTION_TRAITS_PARSE_D_L_{1}, \\
BOOST_CONTRACT_EXT_PP_POST_ASSERTION_TRAITS_IS_REPLACEMENT_D_L_{1}, \\
@@ -237,7 +237,7 @@ BOOST_CONTRACT_EXT_PP_IF_ASSERTION_TRAITS_REPLACE_ELSES_PARSE_YES_{0}_( \\
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK( \\
traits, \\
BOOST_CONTRACT_EXT_PP_IF_ASSERTION_TRAITS_EXPAND_TRAITS_{0}_( \\
BOOST_CONTRACT_EXT_PP_ENUM_LIST_TRAITS_PARSE_D_ ## l(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ENUM_LIST_PARSE_D_ ## l(d, \\
BOOST_CONTRACT_EXT_PP_PAREN_FRONT(decl), \\
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_PARSE_D_L_{1}, \\
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_IS_REPLACEMENT_D_L_{1}, \\
@@ -268,8 +268,19 @@ file.write('''
#include <boost/contract/ext_/preprocessor/traits/assertion/if/cond.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/if/thens.hpp>
#include <boost/contract/ext_/preprocessor/traits/assertion/if/elses.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/if.hpp>
#include <boost/contract/ext_/preprocessor/keyword/else.hpp>
#include <boost/contract/ext_/preprocessor/keyword/static.hpp>
#include <boost/contract/ext_/preprocessor/paren/front.hpp>
#include <boost/contract/ext_/preprocessor/utility/empty.hpp>
#include <boost/contract/ext_/preprocessor/utility/nil.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
#include <boost/preprocessor/tuple/rem.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
/* PUBLIC */

View File

@@ -2,9 +2,9 @@
#ifndef BOOST_CONTRACT_EXT_PP_OLDOF_ASSERTION_TRAITS_TYPE_HPP_
#define BOOST_CONTRACT_EXT_PP_OLDOF_ASSERTION_TRAITS_TYPE_HPP_
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/assertion_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
/* PUBLIC */
@@ -20,7 +20,7 @@
#define BOOST_CONTRACT_EXT_PP_OLDOF_ASSERTION_TRAITS_TYPE_PARSE_D(d, \
decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D(d, \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits)), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits) \
)

View File

@@ -3,8 +3,8 @@
#define BOOST_CONTRACT_EXT_PP_RETURN_ASSERTION_TRAITS_TYPE_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/assertion_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
/* PUBLIC */
@@ -20,7 +20,7 @@
#define BOOST_CONTRACT_EXT_PP_RETURN_ASSERTION_TRAITS_TYPE_PARSE_D(d, \
decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D(d, \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits)), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits) \
)

View File

@@ -2,9 +2,9 @@
#ifndef BOOST_CONTRACT_EXT_PP_TYPEDEF_ASSERTION_TRAITS_NAME_HPP_
#define BOOST_CONTRACT_EXT_PP_TYPEDEF_ASSERTION_TRAITS_NAME_HPP_
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/assertion_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/typedef.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
@@ -21,10 +21,9 @@
#define BOOST_CONTRACT_EXT_PP_TYPEDEF_ASSERTION_TRAITS_NAME_PARSE_D(d, \
decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_KEYWORD_TYPEDEF_REMOVE_FRONT( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits) \
) \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits)) \
), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits) \
)

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ADT_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ADT_HPP_
#include <boost/preprocessor/seq/pop_front.hpp>
#include <boost/preprocessor/seq/elem.hpp>
@@ -8,21 +8,12 @@
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
// TODO: I've been going back and forth about this... but at the end, once all
// traits parsing have been implemented, consider moving utility/ into aux_/
// and also consider making all _PARSE macros AUX_PARSE (even if they remained
// defined in that trait header file not under the aux_/ dir). That way the
// public API might be more clear (and for now no one will every use the
// utility/ etc macro to implement they own parsing, that's an all different
// story which might require redesign of this lib API so it's even better to
// not give the impression that can be done by providing public PARSE macros).
// TODO: Rename this header back to adt.hpp when it's moved into aux_/.
/* PUBLIC */
// These macros are not usually used by the users (unless they re-implement
// their own parsing macros).
// Abstract Data Type (ADT) used to internally represent pp-traits.
// In theory, it is possible to change traits representation just changing
// these macros however Boost.Preprocessor docs say that pp-seq are the
// fastest (always close to random access performance because they use
// iteration instead of recursion) and largest (up to 256 elements) data
// structure so there should be no reason to change representation from pp-seq.
// WARNING: PP_TUPLE_ELEM does not handle EMPTY() elements. Therefore, it is
// necessary to always postfix decl with NIL, (NIL), etc. (for declaration
@@ -34,15 +25,11 @@
// * PARSE(decl) starts parsing declaration tokens (init. decl_traits).
// * PARSE(decl_seq) start parsing pp-seq of declarations (init. decl_traits).
// * PARSE(decl_traits) interim parsing of declarations (no init. decl_traits).
// Some PARSE macros (the ones in utility/) do no parse multiple traits but only
// Some PARSE macros (the ones in aux_/) do no parse multiple traits but only
// a single trait so they do not use the PP_TRAITS macros below but just report
// trait as tokens (this is documented by these macros).
// IMPLEMENTATION: In theory, it is possible to change traits representation
// just changing these macros however Boost.Preprocessor docs say that pp-seq
// are the fastest (always close to random access performance because they use
// iteration instead of recursion) and largest (up to 256 elements) data
// structure so there should be no reason to change representation from pp-seq.
/* PUBLIC */
#define BOOST_CONTRACT_EXT_PP_TRAITS_INIT (BOOST_PP_NIL)

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_AUX_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_AUX_HPP_
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -10,14 +10,14 @@
// Expand decl = `[keyword] ...` to `(..., [keyword] EMPTY)`.
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
#define BOOST_CONTRACT_EXT_PP_KEYWORD1_TRAITS_PARSE( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD1_PARSE( \
decl, \
keyword1, is_keyword1_macro, remove_keyword1_macro \
) \
BOOST_PP_EXPAND( \
BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_ \
BOOST_PP_IIF(is_keyword1_macro(decl), \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_YES_, decl, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_YES_, decl, \
keyword1, remove_keyword1_macro) \
, \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_NO_, decl, ~, ~) \
@@ -27,22 +27,22 @@
// Expand decl = `[keyword] ...` to `(..., [keyword] EMTPY)`, where keyword can
// be one among 3 possible keywords.
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
#define BOOST_CONTRACT_EXT_PP_KEYWORD3_TRAITS_PARSE( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD3_PARSE( \
decl, \
keyword1, is_keyword1_macro, remove_keyword1_macro, \
keyword2, is_keyword2_macro, remove_keyword2_macro, \
keyword3, is_keyword3_macro, remove_keyword3_macro \
) \
BOOST_PP_EXPAND( \
BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_ \
BOOST_PP_IIF(is_keyword1_macro(decl), \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_YES_, decl, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_YES_, decl, \
keyword1, remove_keyword1_macro) \
, BOOST_PP_IIF(is_keyword2_macro(decl), \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_YES_, decl, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_YES_, decl, \
keyword2, remove_keyword2_macro) \
, BOOST_PP_IIF(is_keyword3_macro(decl), \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_YES_, decl, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_YES_, decl, \
keyword3, remove_keyword3_macro) \
, \
(BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_NO_, decl, ~, ~) \
@@ -51,11 +51,11 @@
/* PRIVATE */
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_(macro, _1, _2, _3) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_(macro, _1, _2, _3) \
macro(_1, _2, _3)
// Precondition: decl = `keyword ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_TRAITS_YES_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_YES_( \
decl, keyword, remove_keyword_macro) \
(remove_keyword_macro(decl), keyword BOOST_PP_EMPTY)

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_KEYWORD_COMB_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_KEYWORD_COMB_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_COMB_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_COMB_HPP_
#include <boost/preprocessor/control/iif.hpp>
@@ -18,15 +18,15 @@
// this is OK because in C++ `const volatile` and `volatile const` are both
// allowed syntactically but they represent the same thing semantically so
// there is no need to differentiate them).
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_PARSE( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_PARSE( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
) \
BOOST_PP_IIF(is_keyword1_macro(decl), \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_YES_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_YES_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_NO_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_NO_ \
)( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
@@ -36,30 +36,30 @@
/* PRIVATE */
// Precondition: decl = `keyword1 ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_YES_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_YES_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
) \
BOOST_PP_IIF( \
is_keyword2_macro(remove_keyword1_macro(decl)), \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_2_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_2_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_ \
)( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
)
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_NO_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_NO_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
) \
BOOST_PP_IIF(is_keyword2_macro(decl), \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_YES_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_YES_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_NONE_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_NONE_ \
)( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
@@ -67,16 +67,16 @@
)
// Precondition: decl = `keyword2 ...`
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_YES_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_YES_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
) \
BOOST_PP_IIF( \
is_keyword1_macro(remove_keyword2_macro(decl)), \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_1_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_1_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_ \
)( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
@@ -84,7 +84,7 @@
)
// Precondition: decl = `...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_NONE_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_NONE_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
@@ -93,7 +93,7 @@
// Precondition: decl = `keyword2 keyword1 ...`.
// This produces `(1, 1)` as case above (so it cannot be diff. from case above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_1_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_1_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
@@ -101,7 +101,7 @@
(remove_keyword1_macro(remove_keyword2_macro(decl)), (1, 1))
// Precondition: decl = `keyword1 keyword2 ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_2_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_2_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
@@ -109,7 +109,7 @@
(remove_keyword2_macro(remove_keyword1_macro(decl)), (1, 1))
// Precondition: decl = `keyword2 ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_2_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_2_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \
@@ -117,7 +117,7 @@
(remove_keyword2_macro(decl), (0, 1))
// Precondition: decl = `keyword1 ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_1_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_1_( \
decl, \
is_keyword1_macro, remove_keyword1_macro, \
is_keyword2_macro, remove_keyword2_macro \

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_HPP_
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/paren/front.hpp>
@@ -13,9 +13,9 @@
// Expand `[keyword(,,,)] ...` to decl `...` and append traits with
// `[keyword] EMPTY` (but only if keyword macro param below != EMPTY()) always
// followed by `list_parse_macro(,,,)`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, decl_traits, \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, decl_traits, \
keyword, is_keyword_macro, remove_keyword_macro, list_parse_macro) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_ARGS_(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_ARGS_(d, \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits), \
keyword, \
@@ -26,7 +26,7 @@
// Precondition: decl = `(,,,) ...` from `[keyword](,,,) ...` originally in
// decl (keyword can be EMPTY() to append only parsed list, see macro above).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PUSH_BACK_PARSE_D( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PUSH_BACK_PARSE_D( \
d, decl, traits, keyword, list_parse_macro) \
( \
BOOST_PP_TUPLE_EAT(0) decl, \
@@ -36,7 +36,7 @@
, \
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK \
)(traits, keyword BOOST_PP_EMPTY), \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_EXPAND_TRAITS_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_EXPAND_TRAITS_( \
list_parse_macro(d, BOOST_CONTRACT_EXT_PP_PAREN_FRONT(decl)) \
) \
) \
@@ -44,15 +44,17 @@
/* PRIVATE */
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_ARGS_(d, decl, traits, \
keyword, is_keyword_macro, remove_keyword_macro, list_parse_macro) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_ARGS_( \
d, decl, traits, \
keyword, is_keyword_macro, remove_keyword_macro, list_parse_macro \
) \
BOOST_PP_IIF(is_keyword_macro(decl), \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_YES_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_YES_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_NO_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_NO_ \
)(d, decl, traits, keyword, remove_keyword_macro, list_parse_macro)
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_NO_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_NO_( \
d, decl, traits, keyword, remove_keyword_macro, list_parse_macro) \
( \
decl, \
@@ -67,13 +69,14 @@
)
// Precondition: decl = `keyword(,,,) ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_YES_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_YES_( \
d, decl, traits, keyword, remove_keyword_macro, list_parse_macro) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PUSH_BACK_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PUSH_BACK_PARSE_D(d, \
remove_keyword_macro(decl), traits, keyword, list_parse_macro)
// Extra level of indirection needed for proper expansion (on MSVC).
#define BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_EXPAND_TRAITS_(decl_traits) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_EXPAND_TRAITS_( \
decl_traits) \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits)
#endif // #include guard

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_HPP_
#include <boost/contract/ext_/preprocessor/paren/front.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
@@ -11,35 +11,35 @@
// Expand decl = `[keyword[(,,,)]] ...` to `(..., [(,,,)] EMPTY)`.
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
// NOTE: Both keyword without (,,,) and no keyword at all expand to EMPTY trait.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_PARSE( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_PARSE( \
decl, is_keyword_macro, remove_keyword_macro) \
BOOST_PP_IIF(is_keyword_macro(decl), \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_NO_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_NO_ \
)(decl, remove_keyword_macro)
/* PRIVATE */
// Precondition: decl = `keyword ...`
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_( \
decl, remove_keyword_macro) \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_CHECK_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_CHECK_( \
remove_keyword_macro(decl))
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_CHECK_(decl) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_CHECK_(decl) \
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_HAS_PAREN(decl), \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_YES_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_YES_ \
, \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_NO_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_NO_ \
)(decl, ~)
// Precondition: decl = `(,,,) ...`.
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_YES_(decl, unused) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_YES_(decl, unused) \
(BOOST_PP_TUPLE_EAT(0) decl, \
BOOST_CONTRACT_EXT_PP_PAREN_FRONT(decl) BOOST_PP_EMPTY)
#define BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_NO_(decl, unused) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_NO_(decl, unused) \
(decl, BOOST_PP_EMPTY)
#endif // #include guard

View File

@@ -10,9 +10,9 @@ def code():
result = result + '''
/* PUBLIC ({0}) */
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_D_{0}( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_D_{0}( \\
d, decl, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_{0}_(d, \\
0, \\
BOOST_CONTRACT_EXT_PP_VARIADIC_TO_SEQ decl, \\
parse_elem_macro, \\
@@ -20,9 +20,9 @@ def code():
replace_elem_macro \\
)
#define BOOST_CONTRACT_EXT_PP_VOID_LIST_TRAITS_PARSE_D_{0}( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_VOID_LIST_PARSE_D_{0}( \\
d, decl, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_{0}_(d, \\
1, \\
BOOST_CONTRACT_EXT_PP_VARIADIC_TO_SEQ decl, \\
parse_elem_macro, \\
@@ -30,9 +30,9 @@ def code():
replace_elem_macro \\
)
#define BOOST_CONTRACT_EXT_PP_FIXED_LIST_TRAITS_PARSE_D_{0}( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_FIXED_LIST_PARSE_D_{0}( \\
d, decl, parse_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_{0}_(d, \\
0, \\
BOOST_CONTRACT_EXT_PP_VARIADIC_TO_SEQ decl, \\
parse_elem_macro, \\
@@ -40,9 +40,9 @@ def code():
BOOST_PP_NIL \\
)
#define BOOST_CONTRACT_EXT_PP_ENUM_LIST_TRAITS_PARSE_D_{0}( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ENUM_LIST_PARSE_D_{0}( \\
d, decl, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_{0}_(d, \\
0, \\
BOOST_CONTRACT_EXT_PP_VARIADIC_ENUM_TO_SEQ decl, \\
parse_elem_macro, \\
@@ -52,32 +52,32 @@ def code():
/* PRIVATE ({0}) */
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_{0}_(d, allow_void, decl_seq, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_{0}_(d, allow_void, \\
decl_seq, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_IS_EMPTY(decl_seq), \\
((BOOST_PP_NIL), BOOST_PP_EMPTY) BOOST_PP_TUPLE_EAT(5) \\
, BOOST_PP_IIF(allow_void, \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_HANDLE_VOID_{0}_ \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_HANDLE_VOID_{0}_ \\
, \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_{0}_ \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_{0}_ \\
))(d, decl_seq, parse_elem_macro, is_replacement_macro, replace_elem_macro)
// Precondition: decl_seq is a valid pp-seq, so decl_seq != EMPTY().
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_HANDLE_VOID_{0}_(d, decl_seq, \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_HANDLE_VOID_{0}_(d, decl_seq, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_VOID_FRONT( \\
BOOST_PP_SEQ_HEAD(decl_seq)), \\
((BOOST_PP_NIL), BOOST_PP_EMPTY) BOOST_PP_TUPLE_EAT(5) \\
, \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_{0}_ \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_{0}_ \\
)(d, decl_seq, parse_elem_macro, is_replacement_macro, replace_elem_macro)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_{0}_(d, decl_seq, \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_{0}_(d, decl_seq, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_RETURN_{0}_( \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_RETURN_{0}_( \\
BOOST_PP_WHILE_ ## d( \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PRED_{0}_, \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_OP_{0}_, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PRED_{0}_, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_OP_{0}_, \\
( \\
decl_seq (BOOST_PP_NIL), \\
BOOST_CONTRACT_EXT_PP_TRAITS_INIT, \\
@@ -88,7 +88,7 @@ def code():
) \\
)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_RETURN_{0}_( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_RETURN_{0}_( \\
decl_traits_parse_is_replace) \\
( \\
BOOST_PP_TUPLE_ELEM(5, 0, decl_traits_parse_is_replace), \\
@@ -96,14 +96,14 @@ def code():
decl_traits_parse_is_replace)) BOOST_PP_EMPTY \\
)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PRED_{0}_( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PRED_{0}_( \\
d, decl_traits_parse_is_replace) \\
BOOST_PP_NOT_EQUAL(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM( \\
5, 0, decl_traits_parse_is_replace)), 1)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_OP_{0}_( \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_OP_{0}_( \\
d, decl_traits_parse_is_replace) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_OP_ARGS_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_OP_ARGS_{0}_(d, \\
BOOST_PP_TUPLE_ELEM(5, 0, decl_traits_parse_is_replace), \\
BOOST_PP_TUPLE_ELEM(5, 1, decl_traits_parse_is_replace), \\
BOOST_PP_TUPLE_ELEM(5, 2, decl_traits_parse_is_replace), \\
@@ -111,18 +111,18 @@ def code():
BOOST_PP_TUPLE_ELEM(5, 4, decl_traits_parse_is_replace) \\
)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_OP_ARGS_{0}_(d, decl_seq, traits, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_OP_ARGS_{0}_(d, decl_seq, \\
traits, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_PP_IIF(is_replacement_macro(d, {1}, BOOST_PP_SEQ_HEAD(decl_seq)), \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_ELEM_REPLACE_{0}_ \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_ELEM_REPLACE_{0}_ \\
, \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_ELEM_PARSE_{0}_ \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_ELEM_PARSE_{0}_ \\
)(d, decl_seq, traits, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_ELEM_PARSE_{0}_(d, decl_seq, \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_ELEM_PARSE_{0}_(d, decl_seq, \\
traits, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PUSH_BACK_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PUSH_BACK_{0}_(d, \\
BOOST_PP_SEQ_TAIL(decl_seq), \\
traits, \\
parse_elem_macro(d, {1}, BOOST_PP_SEQ_HEAD(decl_seq)), \\
@@ -131,9 +131,9 @@ def code():
replace_elem_macro \\
)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_ELEM_REPLACE_{0}_(d, decl_seq, \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_ELEM_REPLACE_{0}_(d, decl_seq, \\
traits, parse_elem_macro, is_replacement_macro, replace_elem_macro) \\
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PUSH_BACK_{0}_(d, \\
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PUSH_BACK_{0}_(d, \\
BOOST_PP_SEQ_TAIL(decl_seq), \\
BOOST_CONTRACT_EXT_PP_TRAITS_POP_BACK(traits), \\
replace_elem_macro(d, {1}, (BOOST_PP_SEQ_HEAD(decl_seq), \\
@@ -143,7 +143,7 @@ def code():
replace_elem_macro \\
)
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PUSH_BACK_{0}_(d, \\
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PUSH_BACK_{0}_(d, \\
decl_seq, traits, elemdecl_elemtraits, \\
parse_elem_macro, is_replacement_macro, replace_elem_macro \\
) \\
@@ -168,8 +168,8 @@ script = os.path.basename(sys.argv[0])
path = sys.argv[0].replace('-generate.py', '', 1) + ".hpp"
file = open(path, 'w')
file.write('''
#ifndef BOOST_CONTRACT_EXT_PP_LIST_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_HPP_
// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
// Instead, modify and run related generation script "{0}".
@@ -190,11 +190,11 @@ file.write('''
/* PUBLIC */
// Maximum number of nested lists that can be parsed (before pp errors).
#define BOOST_CONTRACT_EXT_PP_LIST_TRAITS_LIMIT {1}
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_LIMIT {1}
// Usage:
// ..._PP_LIST_TRAITS_PARSE_D_ ## l(d, decl, parse_elem_macro,
// is_replacement_macro, replace_elem_macro)
// ..._LIST_PARSE_D_ ## l(d, decl, parse_elem_macro, is_replacement_macro,
// replace_elem_macro)
// Expand decl = `( ,,, ) | ( )` (pp-tuple or empty tuple) to `[pp-seq] EMPTY`
// of element traits as parsed by `parse_elem_macro(d, l, decl)`, or replaced
// by `replace_elem_macro(d, l, decl)` when `is_replacement_macro(d, l, decl)`
@@ -205,7 +205,7 @@ file.write('''
// Note: no-void, yes-replace, no-enum (e.g., for template params).
// Usage:
// ..._PP_VOID_LIST_TRAITS_PARSE_D_ ## l(d, decl, parse_elem_macro,
// ..._VOID_LIST_PARSE_D_ ## l(d, decl, parse_elem_macro,
// is_replacement_macro, replace_elem_macro)
// Expand decl = `( ,,, ) | ( ) | ( void )` (pp-tuple, empty tuple, or void
// tuple) to `[pp-seq] EMPTY` of element traits as parsed by
@@ -218,7 +218,7 @@ file.write('''
// Note: yes-void, yes-replace, no-enum (e.g., for function params).
// Usage:
// ..._PP_FIXED_LIST_TRAITS_PARSE_D_ ## l(d, decl, parse_elem_macro)
// ..._FIXED_LIST_PARSE_D_ ## l(d, decl, parse_elem_macro)
// Expand decl = `( ,,, ) | ( )` (pp-tuple or empty tuple) to `[pp-seq] EMPTY`
// of element traits as parsed by `parse_elem_macro(d, l, decl)`.
// Expand to `EMPTY` if decl is empty tuple `( )`.
@@ -227,7 +227,7 @@ file.write('''
// Note: no-void, no-replace, no-enum (e.g., for captures).
// Usage:
// ..._PP_ENUM_LIST_TRAITS_PARSE_D_ ## l(d, decl, parse_elem_macro,
// ..._ENUM_LIST_PARSE_D_ ## l(d, decl, parse_elem_macro,
// is_replacement_macro, replace_elem_macro)
// Expand decl = `( ,,, [,] ) | ( )` (pp-tuple, or enumeration tuple with extra
// trailing comma `,`, or empty tuple) to `[pp-seq] EMPTY` of element traits as

View File

@@ -1,6 +1,6 @@
#ifndef BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_HPP_
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_HPP_
#ifndef BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_HPP_
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_HPP_
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/auto.hpp>
@@ -38,21 +38,21 @@
// `(..., (type) | ())`.
// For example, `int const ...` to `(..., (int const))`.
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D(d, decl) \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_D_(d, decl, \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SPACED_PUSH_BACK_)
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D(d, decl) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_D_(d, decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SPACED_PUSH_BACK_)
// Expand decl = `[auto | type | (type)] ...` (type can also be `void`) to
// `(..., auto | (type) | ())` (note that auto is not wrapped in parenthesis).
// For example, `auto ...` to `(..., auto)`.
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
// NOTE: So far, there is no need of a SEQ version of this macro.
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D(d, decl) \
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_AUTO_FRONT( \
decl), \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_ \
, \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D \
)(d, decl)
// Expand decl = `[type | (type)] ...` (type can also be `void`) to
@@ -60,37 +60,35 @@
// For example, `int const ...` to `(..., ((int)) ((const)))` (useful to access
// single type keywords `int`, `const`, etc.).
// Precondition: `...` in decl cannot be EMPTY() (so expanded 2-tuple is valid).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_PARSE_D(d, decl) \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_RETURN_( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_D_(d, decl, \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_PUSH_BACK_) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_PARSE_D(d, decl) \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_RETURN_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_D_(d, decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_PUSH_BACK_) \
)
/* PRIVATE */
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SPACED_PUSH_BACK_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SPACED_PUSH_BACK_( \
spaced_type, trait) \
spaced_type trait
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_PUSH_BACK_( \
type_seq, trait) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_PUSH_BACK_(type_seq, trait) \
type_seq ((trait))
// Precondition: decl = `auto ...`.
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_(unused, decl) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_(unused, decl) \
(BOOST_CONTRACT_EXT_PP_KEYWORD_AUTO_REMOVE_FRONT(decl), auto)
// Extra level of indirection needed for proper macro expansion (on MSVC).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_RETURN_(decl_type) \
BOOST_PP_EXPAND(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_RETURN_ARGS_ \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_RETURN_(decl_type) \
BOOST_PP_EXPAND(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_RETURN_ARGS_ \
decl_type)
// Remove an extra set of parenthesis around sequence (originally added to
// handle commas by algorithms in common with spaced type traits).
// Implementation: Always return `(())` (double paren seq with 1 empty elem) in
// case no type was parsed.
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_RETURN_ARGS_( \
decl, type) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_RETURN_ARGS_(decl, type) \
( \
decl, \
BOOST_PP_EXPR_IIF(BOOST_CONTRACT_EXT_PP_IS_EMPTY type, \
@@ -99,16 +97,16 @@
BOOST_PP_TUPLE_REM_CTOR(1, type) \
)
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_D_( \
d, decl, push_back_macro) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_D_(d, decl, push_back_macro) \
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_HAS_PAREN(decl), \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PAREN_D_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PAREN_D_ \
, \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_D_ \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_D_ \
)(d, decl, push_back_macro)
// Precondition: decl = `(...) ...`.
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PAREN_D_(d, decl, push_back_macro) \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PAREN_D_( \
d, decl, push_back_macro) \
( \
BOOST_PP_TUPLE_EAT(0) decl, \
push_back_macro(BOOST_PP_EMPTY(), \
@@ -116,18 +114,18 @@
)
// Precondition: decl does not start with paren (it's formed by keywords).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_D_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_D_( \
d, decl, push_back_macro) \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_RETURN_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_RETURN_( \
BOOST_PP_WHILE_ ## d( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_PRED_, \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_OP_, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_PRED_, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_OP_, \
(1, decl, BOOST_PP_NIL, push_back_macro) \
) \
)
// Do not return continue_ and wrap type in paren (so same as paren type).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_RETURN_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_RETURN_( \
continue_decl_type_push) \
( \
BOOST_PP_TUPLE_ELEM(4, 1, continue_decl_type_push), \
@@ -135,85 +133,85 @@
BOOST_PP_TUPLE_ELEM(4, 2, continue_decl_type_push)) ) \
)
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_PRED_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_PRED_( \
d, continue_decl_type_push) \
BOOST_PP_TUPLE_ELEM(4, 0, continue_decl_type_push)
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_OP_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_OP_( \
d, continue_decl_type_push) \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_OP_ARGS_(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_OP_ARGS_(d, \
BOOST_PP_TUPLE_ELEM(4, 1, continue_decl_type_push), \
BOOST_PP_TUPLE_ELEM(4, 2, continue_decl_type_push), \
BOOST_PP_TUPLE_ELEM(4, 3, continue_decl_type_push) \
)
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_OP_ARGS_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_OP_ARGS_( \
d, decl, type, push_back_macro) \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_( \
d, \
decl, \
type, \
push_back_macro, \
BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_AUTO_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
auto, BOOST_CONTRACT_EXT_PP_KEYWORD_AUTO_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_REGISTER_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
register, BOOST_CONTRACT_EXT_PP_KEYWORD_REGISTER_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_CONST_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
const, BOOST_CONTRACT_EXT_PP_KEYWORD_CONST_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_VOLATILE_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
volatile, BOOST_CONTRACT_EXT_PP_KEYWORD_VOLATILE_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_LONG_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
long, BOOST_CONTRACT_EXT_PP_KEYWORD_LONG_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_SHORT_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
short, BOOST_CONTRACT_EXT_PP_KEYWORD_SHORT_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_SIGNED_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
signed, BOOST_CONTRACT_EXT_PP_KEYWORD_SIGNED_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_UNSIGNED_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
unsigned, BOOST_CONTRACT_EXT_PP_KEYWORD_UNSIGNED_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_VOID_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
void, BOOST_CONTRACT_EXT_PP_KEYWORD_VOID_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_BOOL_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
bool, BOOST_CONTRACT_EXT_PP_KEYWORD_BOOL_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_CHAR_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
char, BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_CHAR16_T_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
char16_t, BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR16_T_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_CHAR32_T_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
char32_t, BOOST_CONTRACT_EXT_PP_KEYWORD_CHAR32_T_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_WCHAR_T_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
wchar_t, BOOST_CONTRACT_EXT_PP_KEYWORD_WCHAR_T_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_INT_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
int, BOOST_CONTRACT_EXT_PP_KEYWORD_INT_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_FLOAT_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
float, BOOST_CONTRACT_EXT_PP_KEYWORD_FLOAT_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_DOUBLE_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_, \
double, BOOST_CONTRACT_EXT_PP_KEYWORD_DOUBLE_REMOVE_FRONT) \
, BOOST_PP_IIF(BOOST_CONTRACT_EXT_PP_KEYWORD_IS_DECLTYPE_FRONT(decl), \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_PAREN_, \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_PAREN_, \
decltype, BOOST_CONTRACT_EXT_PP_KEYWORD_DECLTYPE_REMOVE_FRONT) \
, \
(BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_DONE_, ~, ~) \
(BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_DONE_, ~, ~) \
)))))))))))))))))) \
)
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_( \
d, decl, type, push_back_macro, invoke_trait_remove) \
BOOST_PP_TUPLE_ELEM(3, 0, invoke_trait_remove)(d, \
decl, \
@@ -223,19 +221,16 @@
BOOST_PP_TUPLE_ELEM(3, 2, invoke_trait_remove) \
)
// Expand to (continue_ = 0, decl, type, push_back_macro).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_DONE_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_DONE_( \
d, decl, type, push_back_macro, unused1, unused2) \
(0, decl, type, push_back_macro)
// Expand to (continue_ = 1, remaining_decl, parsed_type, push_back_macro).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_TRAIT_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_TRAIT_( \
d, decl, type, push_back_macro, trait, remove_macro) \
(1, remove_macro(decl), push_back_macro(type, trait), push_back_macro)
// Expand to (continue_ = 1, remaining_decl, parsed_type, push_back_macro).
// Precondition: decl = `trait(...) ...` (e.g., for `decltype(...) ...`).
#define BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_KEYWORD_PAREN_( \
#define BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_KEYWORD_PAREN_( \
d, decl, type, push_back_macro, trait, remove_macro) \
( \
1, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_BASE_TRAITS_CLASSIFIERS_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/base_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/virtual.hpp>
#include <boost/contract/ext_/preprocessor/keyword/private.hpp>
@@ -75,7 +75,7 @@
#define BOOST_CONTRACT_EXT_PP_BASE_TRAITS_ACCESS_(decl, traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD3_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD3_PARSE( \
decl, \
public, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_PUBLIC_FRONT, \

View File

@@ -3,8 +3,8 @@
#define BOOST_CONTRACT_EXT_PP_CAPTURE_TRAITS_TYPE_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/capture_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/facilities/expand.hpp>
@@ -20,7 +20,7 @@
// Precondition: decl = `[wrapped-type] ...`.
#define BOOST_CONTRACT_EXT_PP_CAPTURE_TRAITS_TYPE_PARSE_D(d, decl_traits) \
BOOST_CONTRACT_EXT_PP_CAPTURE_TRAITS_TYPE_( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D(d, \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits)), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits) \
)

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/base.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/extends.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -19,7 +19,7 @@
BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_AUX_BASES_INDEX, traits)()
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_BASES_PARSE_D(d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, \
decl_traits, \
BOOST_PP_EMPTY(), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_EXTENDS_FRONT, \
@@ -32,7 +32,7 @@
// Precondition: decl = `(,,,) ...` from `extends(,,,) ...` originally in decl.
// This macro will also parse `(,,,)` into a pp-seq of base traits.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_BASES_(d, decl) \
BOOST_CONTRACT_EXT_PP_FIXED_LIST_TRAITS_PARSE_D_1(d, decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_FIXED_LIST_PARSE_D_1(d, decl, \
BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_BASE_PARSE_)
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_BASE_PARSE_(d, l, decl) \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_EXPORT_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/export.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
@@ -21,7 +21,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD1.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_EXPORT_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD1_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD1_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
export, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_EXPORT_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_FRIEND_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/friend.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
@@ -18,7 +18,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD1.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_FRIEND_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD1_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD1_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
friend, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_FRIEND_FRONT, \

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/param.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/template.hpp>
#include <boost/contract/ext_/preprocessor/keyword/default.hpp>
@@ -26,7 +26,7 @@
)()
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_TEMPLATE_PARSE_D(d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, \
decl_traits, \
template, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_TEMPLATE_FRONT, \
@@ -39,7 +39,7 @@
// Precondition: decl = `(,,,) ...` from `template(,,,) ...` originally in decl.
// This macro will also parse `(,,,)` into a pp-seq of template param traits.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_TEMPLATE_(d, decl) \
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_D_1(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_D_1(d, \
decl, \
BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_TEMPLATE_PARAM_PARSE_, \
BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_TEMPLATE_IS_DEFAULT_, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_VERBATIM_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/verbatim.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -18,7 +18,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD_PAREN.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_VERBATIM_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_VERBATIM_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_VERBATIM_REMOVE_FRONT \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_VIRT_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/class_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/final.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
@@ -18,7 +18,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD1.
#define BOOST_CONTRACT_EXT_PP_CLASS_TRAITS_VIRT_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD1_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD1_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
final, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_FINAL_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_ACCESS_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/public.hpp>
#include <boost/contract/ext_/preprocessor/keyword/protected.hpp>
@@ -20,7 +20,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD3.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_ACCESS_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD3_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD3_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
public, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_PUBLIC_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_CV_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_comb.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_comb.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/const.hpp>
#include <boost/contract/ext_/preprocessor/keyword/volatile.hpp>
@@ -25,7 +25,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_CV_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_CV_( \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_CONST_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_CONST_REMOVE_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/noexcept.hpp>
#include <boost/contract/ext_/preprocessor/keyword/throw.hpp>
@@ -36,7 +36,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT_NOEXCEPT_(decl, traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT_( \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_PARSE( \
decl, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_NOEXCEPT_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_NOEXCEPT_REMOVE_FRONT \
@@ -47,7 +47,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT_THROW_(decl, traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXCEPT_( \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_PARSE( \
decl, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_THROW_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_THROW_REMOVE_FRONT \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXPORT_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/export.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
@@ -21,7 +21,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD1.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_EXPORT_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD1_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD1_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
export, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_EXPORT_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_NAME_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/operator.hpp>
#include <boost/contract/ext_/preprocessor/keyword/new.hpp>
@@ -69,7 +69,7 @@
// Precondition: decl = `parenthesized-type ...`.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_NAME_OPERATOR_TYPE_(d, decl, traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_NAME_OPERATOR_TYPE_SEQ_( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_SEQ_PARSE_D(d, decl), traits)
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_SEQ_PARSE_D(d, decl), traits)
// Precondition: SECOND(decl_type) is a double parenthesized sequence of type
// traits (e.g., `((int)) ((const))`).

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/param.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -19,7 +19,7 @@
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_AUX_PARAMS_INDEX, traits)()
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARAMS_PARSE_D(d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PUSH_BACK_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PUSH_BACK_PARSE_D(d, \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_PP_TUPLE_ELEM(2, 1, decl_traits), \
BOOST_PP_EMPTY(), \
@@ -30,7 +30,7 @@
// Precondition: decl = `(,,,) ...`.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARAMS_(d, decl) \
BOOST_CONTRACT_EXT_PP_VOID_LIST_TRAITS_PARSE_D_1(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_VOID_LIST_PARSE_D_1(d, \
decl, \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARAMS_PARAM_PARSE_, \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PARAMS_IS_DEFAULT_, \

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/assertion.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/postcondition.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -21,7 +21,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_PARSE_D( \
d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, \
decl_traits, \
BOOST_PP_EMPTY(), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_POSTCONDITION_FRONT, \
@@ -34,7 +34,7 @@
// Precondition: decl = `(,,,) ...` from `postcondition(,,,) ...` originally in
// decl. This macro will also parse `(,,,)` into a pp-seq of assertion traits.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_POSTCONDITIONS_(d, decl) \
BOOST_CONTRACT_EXT_PP_ENUM_LIST_TRAITS_PARSE_D_1(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ENUM_LIST_PARSE_D_1(d, \
decl, \
BOOST_CONTRACT_EXT_PP_POST_ASSERTION_TRAITS_PARSE_D_L_1, \
BOOST_CONTRACT_EXT_PP_POST_ASSERTION_TRAITS_IS_REPLACEMENT_D_L_1, \

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/assertion.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/precondition.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -20,7 +20,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PRECONDITIONS_PARSE_D( \
d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, \
decl_traits, \
BOOST_PP_EMPTY(), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_PRECONDITION_FRONT, \
@@ -33,7 +33,7 @@
// Precondition: decl = `(,,,) ...` from `precondition(,,,) ...` originally in
// decl. This macro will also parse `(,,,)` into a pp-seq of assertion traits.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_PRECONDITIONS_(d, decl) \
BOOST_CONTRACT_EXT_PP_ENUM_LIST_TRAITS_PARSE_D_1(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_ENUM_LIST_PARSE_D_1(d, \
decl, \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_PARSE_D_L_1, \
BOOST_CONTRACT_EXT_PP_ASSERTION_TRAITS_IS_REPLACEMENT_D_L_1, \

View File

@@ -3,7 +3,6 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/ref.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -45,16 +44,10 @@
)(decl, traits)
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_NO_(decl, traits) \
( \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, BOOST_PP_EMPTY) \
)
(decl, BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, BOOST_PP_EMPTY))
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_REF_NO_(decl, traits) \
( \
decl, \
BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, ref BOOST_PP_EMPTY) \
)
(decl, BOOST_CONTRACT_EXT_PP_TRAITS_PUSH_BACK(traits, ref BOOST_PP_EMPTY))
// Precondition: decl = `ref ...`.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_REF_REF_YES_(decl, traits) \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_RETURN_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/return.hpp>
#include <boost/contract/ext_/preprocessor/keyword/operator.hpp>
@@ -54,7 +54,7 @@
// Precondition: decl = `return ...`.
#define BOST_CONTRACT_EXT_PP_FUNC_TRAITS_TRAILING_RETURN_YES_(d, decl, traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_RETURN_( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_KEYWORD_RETURN_REMOVE_FRONT(decl) \
), \
traits \
@@ -70,7 +70,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_RETURN_YES_(d, decl, traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_RETURN_( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUTO_TYPE_PARSE_D(d, decl), traits)
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_AUTO_TYPE_PARSE_D(d, decl), traits)
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_RETURN_(decl_return, traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \

View File

@@ -4,8 +4,8 @@
#include <boost/contract/ext_/preprocessor/traits/param.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_list.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/list.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/template.hpp>
#include <boost/contract/ext_/preprocessor/keyword/default.hpp>
@@ -26,7 +26,7 @@
)()
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE_PARSE_D(d, decl_traits) \
BOOST_CONTRACT_EXT_PP_KEYWORD_LIST_TRAITS_PARSE_D(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_LIST_PARSE_D(d, \
decl_traits, \
template, \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_TEMPLATE_FRONT, \
@@ -39,7 +39,7 @@
// Precondition: decl = `(,,,) ...` from `template(,,,) ...` originally in decl.
// This macro will also parse `(,,,)` into a pp-seq of template param traits.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE_(d, decl) \
BOOST_CONTRACT_EXT_PP_LIST_TRAITS_PARSE_D_1(d, \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_LIST_PARSE_D_1(d, \
decl, \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE_PARAM_PARSE_, \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_TEMPLATE_IS_DEFAULT_, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_VERBATIM_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_paren.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/contract/verbatim.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -18,7 +18,7 @@
// Implementation: Trailing EMPTY already put by KEYWORD_PAREN.
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_VERBATIM_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_DECL_TRAITS_PUSH_BACK( \
BOOST_CONTRACT_EXT_PP_KEYWORD_PAREN_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD_PAREN_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_VERBATIM_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_VERBATIM_REMOVE_FRONT \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_VIRT_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/func_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/keyword_comb.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/keyword_comb.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/final.hpp>
#include <boost/contract/ext_/preprocessor/keyword/override.hpp>
@@ -25,7 +25,7 @@
#define BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_VIRT_PARSE(decl_traits) \
BOOST_CONTRACT_EXT_PP_FUNC_TRAITS_VIRT_( \
BOOST_CONTRACT_EXT_PP_KEYWORD2_COMB_TRAITS_PARSE( \
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_KEYWORD2_COMB_PARSE( \
BOOST_PP_TUPLE_ELEM(2, 0, decl_traits), \
BOOST_CONTRACT_EXT_PP_KEYWORD_IS_FINAL_FRONT, \
BOOST_CONTRACT_EXT_PP_KEYWORD_FINAL_REMOVE_FRONT, \

View File

@@ -3,7 +3,7 @@
#define BOOST_CONTRACT_EXT_PP_PARAM_TRAITS_TYPE_HPP_
#include <boost/contract/ext_/preprocessor/traits/aux_/param_index.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/aux_/type.hpp>
#include <boost/contract/ext_/preprocessor/traits/utility/traits.hpp>
#include <boost/contract/ext_/preprocessor/keyword/typename.hpp>
#include <boost/contract/ext_/preprocessor/keyword/class.hpp>
@@ -73,7 +73,7 @@
// Precondition: decl = `wrapped-type ... | type`.
#define BOOST_CONTRACT_EXT_PP_PARAM_TRAITS_TYPE_PARSE_ARGS_(d, decl, traits) \
BOOST_CONTRACT_EXT_PP_PARAM_TRAITS_TYPE_( \
BOOST_CONTRACT_EXT_PP_TYPE_TRAITS_PARSE_D(d, decl), traits)
BOOST_CONTRACT_EXT_PP_TRAITS_AUX_TYPE_PARSE_D(d, decl), traits)
#define BOOST_CONTRACT_EXT_PP_PARAM_TRAITS_TYPE_(decl_type, traits) \
BOOST_PP_IIF(BOOST_PP_EXPAND(BOOST_CONTRACT_EXT_PP_IS_EMPTY \