#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/comparison/equal.hpp>
#define RET_TYPE_void 1)(1
#define IS_VOID(type) BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE((BOOST_PP_CAT(RET_TYPE_,type))),2)
#include <cstdio>
int main(int argc,char *argv[])
{
BOOST_PP_IF(IS_VOID(void),printf("is void\n"),printf("is not void\n"));
BOOST_PP_IF(IS_VOID(int),printf("is void\n"),printf("is not void\n"));
return 0;
}
I2luY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jYXQuaHBwPgojaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3NlcS9zaXplLmhwcD4KI2luY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb250cm9sL2lmLmhwcD4KI2luY2x1ZGUgPGJvb3N0L3ByZXByb2Nlc3Nvci9jb21wYXJpc29uL2VxdWFsLmhwcD4KCiNkZWZpbmUgUkVUX1RZUEVfdm9pZCAxKSgxCiNkZWZpbmUgSVNfVk9JRCh0eXBlKSBCT09TVF9QUF9FUVVBTChCT09TVF9QUF9TRVFfU0laRSgoQk9PU1RfUFBfQ0FUKFJFVF9UWVBFXyx0eXBlKSkpLDIpCgojaW5jbHVkZSA8Y3N0ZGlvPgoKaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQp7CiAgICBCT09TVF9QUF9JRihJU19WT0lEKHZvaWQpLHByaW50ZigiaXMgdm9pZFxuIikscHJpbnRmKCJpcyBub3Qgdm9pZFxuIikpOwogICAgQk9PU1RfUFBfSUYoSVNfVk9JRChpbnQpLHByaW50ZigiaXMgdm9pZFxuIikscHJpbnRmKCJpcyBub3Qgdm9pZFxuIikpOwogICAgcmV0dXJuIDA7Cn0=