|
||||
File indexing completed on 2025-01-18 09:53:38
0001 0002 // (C) Copyright Edward Diener 2011-2015 0003 // Use, modification and distribution are subject to the Boost Software License, 0004 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 0005 // http://www.boost.org/LICENSE_1_0.txt). 0006 0007 #if !defined(BOOST_VMD_IS_IDENTIFIER_HPP) 0008 #define BOOST_VMD_IS_IDENTIFIER_HPP 0009 0010 #include <boost/vmd/detail/setup.hpp> 0011 0012 #if BOOST_PP_VARIADICS 0013 0014 #include <boost/vmd/detail/is_identifier.hpp> 0015 0016 /* 0017 0018 The succeeding comments in this file are in doxygen format. 0019 0020 */ 0021 0022 /** \file 0023 */ 0024 0025 /** \def BOOST_VMD_IS_IDENTIFIER(...) 0026 0027 \brief Tests whether a parameter is an identifier. 0028 0029 ... = variadic parameters 0030 0031 The first variadic parameter is required and it is the input to test. 0032 0033 Further variadic parameters are optional and are identifiers to match. 0034 The data may take one of two forms; it is either one or more single identifiers 0035 or a single Boost PP tuple of identifiers. 0036 0037 @code 0038 0039 returns = 1 if the parameter is an identifier, otherwise 0. 0040 0041 If the parameter is not an identifier, 0042 or if optional identifiers are specified and the identifier 0043 does not match any of the optional identifiers, the macro returns 0. 0044 0045 @endcode 0046 0047 Identifiers are registered in VMD with: 0048 0049 @code 0050 0051 #define BOOST_VMD_REG_XXX (XXX) where XXX is a v-identifier. 0052 0053 @endcode 0054 0055 The identifier must be registered to be found. 0056 0057 Identifiers are pre-detected in VMD with: 0058 0059 @code 0060 0061 #define BOOST_VMD_DETECT_XXX_XXX where XXX is an identifier. 0062 0063 @endcode 0064 0065 If you specify optional identifiers and have not specified the detection 0066 of an optional identifier, that optional identifier will never match the input. 0067 0068 If the input is not a VMD data type this macro could lead to 0069 a preprocessor error. This is because the macro 0070 uses preprocessor concatenation to determine if the input 0071 is an identifier once it is determined that the input does not 0072 start with parenthesis. If the data being concatenated would 0073 lead to an invalid preprocessor token the compiler can issue 0074 a preprocessor error. 0075 0076 */ 0077 0078 #define BOOST_VMD_IS_IDENTIFIER(...) \ 0079 BOOST_VMD_DETAIL_IS_IDENTIFIER(__VA_ARGS__) \ 0080 /**/ 0081 0082 /** \def BOOST_VMD_IS_IDENTIFIER_D(d,...) 0083 0084 \brief Tests whether a parameter is an identifier. Re-entrant version. 0085 0086 d = The next available BOOST_PP_WHILE iteration. <br/> 0087 ... = variadic parameters 0088 0089 The first variadic parameter is required and it is the input to test. 0090 0091 Further variadic parameters are optional and are identifiers to match. 0092 The data may take one of two forms; it is either one or more single identifiers 0093 or a single Boost PP tuple of identifiers. 0094 0095 @code 0096 0097 returns = 1 if the parameter is an identifier, otherwise 0. 0098 0099 If the parameter is not an identifier, 0100 or if optional identifiers are specified and the identifier 0101 does not match any of the optional identifiers, the macro returns 0. 0102 0103 @endcode 0104 0105 Identifiers are registered in VMD with: 0106 0107 @code 0108 0109 #define BOOST_VMD_REG_XXX (XXX) where XXX is a v-identifier. 0110 0111 @endcode 0112 0113 The identifier must be registered to be found. 0114 0115 Identifiers are pre-detected in VMD with: 0116 0117 @code 0118 0119 #define BOOST_VMD_DETECT_XXX_XXX where XXX is an identifier. 0120 0121 @endcode 0122 0123 If you specify optional identifiers and have not specified the detection 0124 of an optional identifier, that optional identifier will never match the input. 0125 0126 If the input is not a VMD data type this macro could lead to 0127 a preprocessor error. This is because the macro 0128 uses preprocessor concatenation to determine if the input 0129 is an identifier once it is determined that the input does not 0130 start with parenthesis. If the data being concatenated would 0131 lead to an invalid preprocessor token the compiler can issue 0132 a preprocessor error. 0133 0134 */ 0135 0136 #define BOOST_VMD_IS_IDENTIFIER_D(d,...) \ 0137 BOOST_VMD_DETAIL_IS_IDENTIFIER_D(d,__VA_ARGS__) \ 0138 /**/ 0139 0140 #endif /* BOOST_PP_VARIADICS */ 0141 #endif /* BOOST_VMD_IS_IDENTIFIER_HPP */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |