Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <boost/preprocessor.hpp>
- const int value1 = 10;
- const int value2 = 2;
- int func1() { return 5; }
- int func2() { return 2; }
- #define template_expr(arg1, arg2) std::cout << arg1 + arg2() << std::endl
- #define ParamSet1() (value1, func1)
- #define ParamSet2() (value2, func2)
- #define instantiate(expr, set_number) BOOST_PP_EXPAND(expr ParamSet##set_number())
- #define instantiate_by_name(expr, set_name) BOOST_PP_EXPAND(expr set_name())
- int main()
- {
- instantiate(template_expr, 1); // std::cout << value1 + func1() << std::endl;
- instantiate_by_name(template_expr, ParamSet2); // std::cout << value2 + func2() << std::endl
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement