/usr/include/boost/vmd
NameSizeModeActions
array/-0755rm
detail/-0755rm
list/-0755rm
seq/-0755rm
tuple/-0755rm
array.hpp5010644editdlrm
assert.hpp19330644editdlrm
assert_is_array.hpp35420644editdlrm
assert_is_empty.hpp27580644editdlrm
assert_is_identifier.hpp54260644editdlrm
assert_is_list.hpp35010644editdlrm
assert_is_number.hpp20000644editdlrm
assert_is_seq.hpp34630644editdlrm
assert_is_tuple.hpp20460644editdlrm
assert_is_type.hpp34000644editdlrm
elem.hpp167470644editdlrm
empty.hpp9820644editdlrm
enum.hpp48030644editdlrm
equal.hpp33730644editdlrm
get_type.hpp42990644editdlrm
identity.hpp26290644editdlrm
is_array.hpp20500644editdlrm
is_empty.hpp34680644editdlrm
is_empty_array.hpp28790644editdlrm
is_empty_list.hpp21720644editdlrm
is_identifier.hpp42860644editdlrm
is_list.hpp20830644editdlrm
is_multi.hpp20870644editdlrm
is_number.hpp14210644editdlrm
is_parens_empty.hpp18660644editdlrm
is_seq.hpp18970644editdlrm
is_tuple.hpp10930644editdlrm
is_type.hpp20930644editdlrm
is_unary.hpp21110644editdlrm
list.hpp4960644editdlrm
not_equal.hpp35710644editdlrm
seq.hpp7960644editdlrm
size.hpp13230644editdlrm
to_array.hpp47350644editdlrm
to_list.hpp47210644editdlrm
to_seq.hpp47620644editdlrm
to_tuple.hpp48020644editdlrm
tuple.hpp8220644editdlrm
vmd.hpp17910644editdlrm
Edit: /usr/include/boost/vmd/assert_is_identifier.hpp (5426B)
// (C) Copyright Edward Diener 2011-2015 // Use, modification and distribution are subject to 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). #if !defined(BOOST_VMD_ASSERT_IS_IDENTIFIER_HPP) #define BOOST_VMD_ASSERT_IS_IDENTIFIER_HPP #include #if BOOST_PP_VARIADICS /* The succeeding comments in this file are in doxygen format. */ /** \file */ /** \def BOOST_VMD_ASSERT_IS_IDENTIFIER(...) \brief Asserts that the sequence is an identifier. The macro checks that the sequence is an identifier. If it is not an identifier, it forces a compiler error. The macro normally checks for an identifier only in debug mode. However an end-user can force the macro to check or not check by defining the macro BOOST_VMD_ASSERT_DATA to 1 or 0 respectively. ... = variadic parameters The variadic parameters are: sequence = A sequence to test as an identifier.
ids (optional) = The data may take one of two forms: it is either one or more single identifiers or a single Boost PP tuple of identifiers. @code returns = Normally the macro returns nothing. If the sequence is an identifier, nothing is output. If optional ids are specified, for the sequence to be an identifier it must be an identifier that matches one of the optional ids. For VC++, because there is no sure way of forcing a compiler error from within a macro without producing output, if the sequence is not an identifier the macro forces a compiler error by outputting invalid C++. For all other compilers a compiler error is forced without producing output if the sequence is not an identifier. @endcode Identifiers are registered in VMD with: @code #define BOOST_VMD_REG_XXX (XXX) where XXX is a v-identifier. @endcode The identifier must be registered to be found. Identifiers are pre-detected in VMD with: @code #define BOOST_VMD_DETECT_XXX_XXX where XXX is an identifier. @endcode If you specify optional ids and have not specified the detection of an optional id, that id will never match an identifier. */ /** \def BOOST_VMD_ASSERT_IS_IDENTIFIER_D(d,...) \brief Asserts that the sequence is an identifier. Re-entrant version. The macro checks that the sequence is an identifier. If it is not an identifier, it forces a compiler error. The macro normally checks for an identifier only in debug mode. However an end-user can force the macro to check or not check by defining the macro BOOST_VMD_ASSERT_DATA to 1 or 0 respectively. d = The next available BOOST_PP_WHILE iteration.
... = variadic parameters The variadic parameters are: sequence = A sequence to test as an identifier.
ids (optional) = The data may take one of two forms: it is either one or more single identifiers or a single Boost PP tuple of identifiers. @code returns = Normally the macro returns nothing. If the sequence is an identifier, nothing is output. If optional ids are specified, for the sequence to be an identifier it must be an identifier that matches one of the optional ids. For VC++, because there is no sure way of forcing a compiler error from within a macro without producing output, if the sequence is not an identifier the macro forces a compiler error by outputting invalid C++. For all other compilers a compiler error is forced without producing output if the sequence is not an identifier. @endcode Identifiers are registered in VMD with: @code #define BOOST_VMD_REG_XXX (XXX) where XXX is a v-identifier. @endcode The identifier must be registered to be found. Identifiers are pre-detected in VMD with: @code #define BOOST_VMD_DETECT_XXX_XXX where XXX is an identifier. @endcode If you specify optional ids and have not specified the detection of an optional id, that id will never match an identifier. */ #if !BOOST_VMD_ASSERT_DATA #define BOOST_VMD_ASSERT_IS_IDENTIFIER(...) #define BOOST_VMD_ASSERT_IS_IDENTIFIER_D(d,...) #else #include #include #define BOOST_VMD_ASSERT_IS_IDENTIFIER(...) \ BOOST_VMD_ASSERT \ ( \ BOOST_VMD_IS_IDENTIFIER(__VA_ARGS__), \ BOOST_VMD_IDENTIFIER_ASSERT_ERROR \ ) \ /**/ #define BOOST_VMD_ASSERT_IS_IDENTIFIER_D(d,...) \ BOOST_VMD_ASSERT \ ( \ BOOST_VMD_IS_IDENTIFIER_D(d,__VA_ARGS__), \ BOOST_VMD_IDENTIFIER_ASSERT_ERROR \ ) \ /**/ #endif // !BOOST_VMD_ASSERT_DATA #endif /* BOOST_PP_VARIADICS */ #endif /* BOOST_VMD_ASSERT_IS_IDENTIFIER_HPP */