
Toon Knapen wrote:
On IBM this results in following error msg:
"pp.cpp", line 14.1: 1540-0063 (S) The text "1" is unexpected.
I think that Paul was after the preprocessed text. But, if that's not possible, can you try the following? thanks, Daniel #include <boost/preprocessor/detail/split.hpp> #include <boost/preprocessor/punctuation/comma.hpp> #include <boost/preprocessor/punctuation/paren.hpp> #include <boost/preprocessor/tuple/eat.hpp> #include <boost/static_assert.hpp> #define IS_NULLARY(x) \ BOOST_PP_SPLIT(1, IS_NULLARY_C x BOOST_PP_COMMA() 0) \ /**/ #define IS_NULLARY_C() \ ~, 1 BOOST_PP_RPAREN() \ BOOST_PP_TUPLE_EAT(2) BOOST_PP_LPAREN() ~ \ /**/ BOOST_STATIC_ASSERT(IS_NULLARY(())); BOOST_STATIC_ASSERT(IS_NULLARY(()abc)); BOOST_STATIC_ASSERT(!IS_NULLARY(+)); BOOST_STATIC_ASSERT(!IS_NULLARY(xyz)); #define IS_UNARY(x) IS_NULLARY(IS_UNARY_C x) #define IS_UNARY_C(a) () BOOST_STATIC_ASSERT(IS_UNARY((a))); BOOST_STATIC_ASSERT(IS_UNARY((a)abc)); BOOST_STATIC_ASSERT(!IS_UNARY(+)); BOOST_STATIC_ASSERT(!IS_UNARY(xyz));