Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Summing up the generic macros
PrevUpHomeNext

The VMD generic macros work with VMD sequences, which represent any VMD data. The macros are represented by this table:

Table 1.3. Generic sequence macros

Name

Function

BOOST_VMD_IS_EMPTY

Tests if the sequence is empty

BOOST_VMD_IS_UNARY

Tests if the sequence has a single element

BOOST_VMD_IS_MULTI

Tests if the sequence has more than one element

BOOST_VMD_SIZE

Returns the number of elements in the sequence

BOOST_VMD_TO_ARRAY

Converts a sequence to a Boost PP array

BOOST_VMD_TO_LIST

Converts a sequence to a Boost PP list

BOOST_VMD_TO_SEQ

Converts a sequence to a Boost PP seq

BOOST_VMD_TO_TUPLE

Converts a sequence to a Boost PP tuple

BOOST_VMD_ENUM

Converts a sequence to variadic data

BOOST_VMD_ELEM

Returns a sequence element

BOOST_VMD_GET_TYPE

Returns the type of a sequence

BOOST_VMD_EQUAL

Tests two sequences for equality

BOOST_VMD_NOT_EQUAL

Tests two sequences for inequality


  • For all generic macros the top-level data types must be VMD data types.
  • For the BOOST_VMD_EQUAL and BOOST_VMD_NOT_EQUAL macros all data types must be VMD data types
  • Except for the BOOST_VMD_IS_EMPTY macro, which is really a specific macro which also works generically with sequences, identifiers must be specific identifiers, ie. identifiers must be registered to be used with generic macros and sequences. For the BOOST_VMD_EQUAL and BOOST_VMD_NOT_EQUAL macros specific identifiers must also be pre-detected.

PrevUpHomeNext