boost/libs/vmd/doc/vmd_generic_table.qbk
2021-10-05 21:37:46 +02:00

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]