#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #define BOOST_MPL_LIMIT_LIST_SIZE 50 #include #include #include #include #include "continuous_property.hpp" #include "pla_debug_name.hpp" #include "property_composition.hpp" #include "mempool.hpp" // create some extra properties #define A1(t, s) GEN_CP(Global, t, s, int, 0); #define A2(t, s) A1(t ## 0, s "0") A1(t ## 1, s "1") #define A4(t, s) A2(t ## 0, s "0") A2(t ## 1, s "1") #define A8(t, s) A4(t ## 0, s "0") A4(t ## 1, s "1") #define A16(t, s) A8(t ## 0, s "0") A8(t ## 1, s "1") #define A32(t, s) A16(t ## 0, s "0") A16(t ## 1, s "1") #define A64(t, s) A32(t ## 0, s "0") A32(t ## 1, s "1") #define A128(t, s) A64(t ## 0, s "0") A64(t ## 1, s "1") #define B1(t) boost::mpl::pair> #define B2(t) B1(t ## 0), B1(t ## 1) #define B4(t) B2(t ## 0), B2(t ## 1) #define B8(t) B4(t ## 0), B4(t ## 1) #define B16(t) B8(t ## 0), B8(t ## 1) #define B32(t) B16(t ## 0), B16(t ## 1) #define B64(t) B32(t ## 0), B32(t ## 1) #define B128(t) B64(t ## 0), B64(t ## 1) #define B48(t) B32(t ## 0), B16(t ## 1 ## 1) A64(Many, "many") int main() { // below is bullshit PropertyComposition< boost::mpl::list< B48(Many) // work around boost::mpl::list limit of 50 elements >> test1; PLA_Debug_Name action_debug; std::cout << *test1.call(action_debug) << std::endl; }