36 lines
1.7 KiB
Plaintext
36 lines
1.7 KiB
Plaintext
[/
|
|
(C) Copyright Edward Diener 2020
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt).
|
|
]
|
|
|
|
[section:vmd_gnctable Summing up the generic macros]
|
|
|
|
The VMD generic macros work with VMD sequences, which represent any VMD data. The macros are represented by this table:
|
|
|
|
[table:tgenm 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.
|
|
|
|
[endsect]
|