fork download
  1. #include <boost/preprocessor/cat.hpp>
  2. #include <boost/preprocessor/seq/size.hpp>
  3. #include <boost/preprocessor/control/if.hpp>
  4. #include <boost/preprocessor/comparison/equal.hpp>
  5.  
  6. #define RET_TYPE_void 1)(1
  7. #define IS_VOID(type) BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE((BOOST_PP_CAT(RET_TYPE_,type))),2)
  8.  
  9. #include <cstdio>
  10.  
  11. int main(int argc,char *argv[])
  12. {
  13. BOOST_PP_IF(IS_VOID(void),printf("is void\n"),printf("is not void\n"));
  14. BOOST_PP_IF(IS_VOID(int),printf("is void\n"),printf("is not void\n"));
  15. return 0;
  16. }
Success #stdin #stdout 0.02s 2680KB
stdin
Standard input is empty
stdout
is void
is not void