Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. MY_MACRO((x, y))
  2.  
  3. MY_MACRO(x)
  4.  
  5. #define CONCAT_( x, y ) x ## y
  6. #define CONCAT( x, y ) CONCAT_( x, y )
  7. #define IS_SINGLE_1(...) 0
  8. #define IGNORE(...)
  9. #define IS_SINGLE_2_0 0 IGNORE(
  10. #define IS_SINGLE_2_IS_SINGLE_1 1 IGNORE(
  11. #define IS_SINGLE( x ) CONCAT( IS_SINGLE_2_, IS_SINGLE_1 x ) )
  12. IS_SINGLE((x, y)) // 0
  13. IS_SINGLE(x) // 1
  14.  
  15. #include <boost/preprocessor/cat.hpp>
  16. #include <boost/preprocessor/seq/for_each.hpp>
  17.  
  18. #define SEQ (w)(x)(y)(z)
  19.  
  20. #define MACRO(r, data, elem) BOOST_PP_CAT(elem, data)
  21.  
  22. BOOST_PP_SEQ_FOR_EACH(MACRO, _, SEQ) // expands to w_ x_ y_ z_
  23.  
  24. MACRO(1, a)
  25. MACRO(2, (a,b) )
  26. MACRO(3, (a,b,c) )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement