Delays the catenation of X and Y.
For example,
#define STATIC_ASSERT(EXPR)\ enum\ { BOOST_PP_CAT(static_check_,__LINE__) = (EXPR) ? 1 : -1\ };\ typedef char\ BOOST_PP_CAT(static_assert_,__LINE__)\ [ BOOST_PP_CAT(static_check_,__LINE__)\ ] // ... STATIC_ASSERT(sizeof(int) <= sizeof(long));
expands to:
enum { static_check_152 = (sizeof(int) <= sizeof(long)) ? 1 : -1 }; typedef char static_assert_152 [ static_check_152 ];
Using BOOST_PP_CAT() above lets the PP expand the __LINE__. If the above code would use the ## operator directly then __LINE__ would not be expanded and the above would expand to:
enum { static_check___LINE__ = (sizeof(int) <= sizeof(long)) ? 1 : -1 }; typedef char static_assert___LINE__ [ static_check___LINE__ ];
Obsolete. Use BOOST_PP_CAT().
(C) Copyright Housemarque Oy 2002
Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.
Generated: