Обзор приложения Facebook «Подтвердите свою личность»

Если вы используете макрос STATIC_ASSERT () с __LINE__, можно избежать столкновений строк между записью в файле .c и другой записью в файле заголовка, включив __INCLUDE_LEVEL__.

Например:

/* Trickery to create a unique variable name */
#define BOOST_JOIN( X, Y )      BOOST_DO_JOIN( X, Y )
#define BOOST_DO_JOIN( X, Y )   BOOST_DO_JOIN2( X, Y )
#define BOOST_DO_JOIN2( X, Y )  X##Y
#define STATIC_ASSERT(x)        typedef char \
        BOOST_JOIN( BOOST_JOIN(level_,__INCLUDE_LEVEL__), \
                    BOOST_JOIN(_assert_on_line_,__LINE__) ) [(x) ? 1 : -1]
0
задан Nicoara Talpes 18 March 2019 в 22:41
поделиться