...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
BOOST_VMD_IS_GENERAL_IDENTIFIER — Tests whether a parameter is a general identifier.
// In header: <boost/vmd/is_general_identifier.hpp>
BOOST_VMD_IS_GENERAL_IDENTIFIER(...)
... = variadic parameters
The first variadic parameter is required and it is the input to test.
Passing more than one variadic argument is an error.
returns = 1 if the parameter is any general identifier and only a single variadic argument is given, otherwise 0.
The argument to the macro should be a single possible identifier and not a VMD sequence of preprocessor tokens.
If the input is not a VMD data type this macro could lead to a preprocessor error. This is because the macro uses preprocessor concatenation to determine if the input is an identifier once it is determined that the input is not empty and does not start with parenthesis. If the data being concatenated would lead to an invalid preprocessor token the compiler can issue a preprocessor error.