#ifndef TEST_MATH_VARIABLES_HPP #define TEST_MATH_VARIABLES_HPP #include #include #include #include namespace mathtest { using namespace boost; // math variables x0 ... x99 template struct variable_tag {}; #define BOOST_PP_LOCAL_LIMITS (0, TEST_MATH_MAX_DIMENSION) #define BOOST_PP_LOCAL_MACRO(n)\ BOOST_PP_CAT(\ BOOST_PP_CAT(\ BOOST_PP_CAT(\ proto::terminal< variable_tag< mpl::size_t<\ BOOST_PP_CAT(n,> > >::type x)\ ), n ), ={{}};) ??=include BOOST_PP_LOCAL_ITERATE() proto::terminal< variable_tag< mpl::size_t<100> > >::type x; proto::terminal< variable_tag< mpl::size_t<101> > >::type y; proto::terminal< variable_tag< mpl::size_t<102> > >::type z; proto::terminal< variable_tag< mpl::size_t<103> > >::type S; proto::terminal< variable_tag< mpl::size_t<104> > >::type v; proto::terminal< variable_tag< mpl::size_t<105> > >::type r; proto::terminal< variable_tag< mpl::size_t<106> > >::type q; proto::terminal< variable_tag< mpl::size_t<107> > >::type t; } #endif // TEST_MATH_VARIABLES_HPP