util_macros.hpp File Reference General small utility macros. More... #include "gambit/Utils/boost_fallbacks.hpp" #include "gambit/Utils/cats.hpp" #include "gambit/Utils/stringify.hpp" #include "gambit/Utils/local_info.hpp" #include "gambit/Utils/export_symbols.hpp" #include <boost/preprocessor/seq/size.hpp> #include <boost/preprocessor/tuple/elem.hpp> #include <boost/preprocessor/control/if.hpp> #include <boost/preprocessor/comparison/equal.hpp> #include <boost/preprocessor/arithmetic/sub.hpp> #include <boost/preprocessor/punctuation/comma.hpp> #include <boost/preprocessor/punctuation/paren.hpp>
Include dependency graph for util_macros.hpp:
![]()
This graph shows which files directly or indirectly include this file:
![]() Go to the source code of this file.
Detailed DescriptionGeneral small utility macros. Authors:
Definition in file util_macros.hpp. Macro Definition Documentation◆ _129ONES
Value:
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, \ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,\ 1,1,1,1,1,1,1,1,1,1,1,1 Definition at line 119 of file util_macros.hpp. ◆ _ARG128
Definition at line 92 of file util_macros.hpp. ◆ APPEND_TOKEN
Definition at line 40 of file util_macros.hpp. ◆ APPLY
Definition at line 61 of file util_macros.hpp. ◆ APPLY_I
Definition at line 62 of file util_macros.hpp. ◆ bool_bool
Definition at line 155 of file util_macros.hpp. ◆ BRACED_INIT_LIST
Macro for defining a static const vector easily. With C++11 could use initialiser lists, but this is not available in all the compilers we want to support. Use this as a replacement. e.g. static const std::vector<int> myvector = {1,2,3,4}; // Not possible in all compilers we support. becomes MAKE_STATIC_VECTOR(int,myvector,(1,2,3,4)) Definition at line 366 of file util_macros.hpp. ◆ char_char
Definition at line 156 of file util_macros.hpp. ◆ CHECK
Definition at line 284 of file util_macros.hpp. ◆ CHECK_N
Definition at line 283 of file util_macros.hpp. ◆ CHECK_PARENS
Definition at line 83 of file util_macros.hpp. ◆ CHECK_PARENS_1
Definition at line 85 of file util_macros.hpp. ◆ CHECK_PARENS_2
Definition at line 86 of file util_macros.hpp. ◆ CHECK_PARENS_I
Definition at line 84 of file util_macros.hpp. ◆ CONVERT_VARIADIC_ARG
Definition at line 340 of file util_macros.hpp. ◆ DEFINED
Returns 1 or 0 depending on whether a corresponding DEFINED_<NAME> () macro has been. #defined or not. Definition at line 292 of file util_macros.hpp. ◆ DEFINED_CAPABILITY
Definition at line 314 of file util_macros.hpp. ◆ DEFINED_CONDITIONAL_DEPENDENCY
Definition at line 316 of file util_macros.hpp. ◆ DEFINED_FUNCTION
Definition at line 315 of file util_macros.hpp. ◆ DEFINED_MODULE
Definition at line 313 of file util_macros.hpp. ◆ DEFINED_PROBE
Definition at line 286 of file util_macros.hpp. ◆ DEFINED_PROBE_COMBINE_
Definition at line 289 of file util_macros.hpp. ◆ DEFINED_PROBE_PRIMITIVE
Definition at line 288 of file util_macros.hpp. ◆ DEFINED_PROBE_PROXY
Definition at line 287 of file util_macros.hpp. ◆ double_double
Definition at line 154 of file util_macros.hpp. ◆ DUMMY
Definition at line 45 of file util_macros.hpp. ◆ DUMMYARG
Definition at line 46 of file util_macros.hpp. ◆ EMPTY_TOKEN_TESTER
Definition at line 181 of file util_macros.hpp. ◆ etc_etc
Macros for dealing with variadic function arguments in backend functions. Definition at line 336 of file util_macros.hpp. ◆ EVAL_HASP
Definition at line 81 of file util_macros.hpp. ◆ EVAL_HASP_I
Definition at line 82 of file util_macros.hpp. ◆ EVAL_PAR
Definition at line 65 of file util_macros.hpp. ◆ EVAL_PAR_I
Definition at line 66 of file util_macros.hpp. ◆ FAIL
Definition at line 37 of file util_macros.hpp. ◆ FIRST_ARG
Definition at line 50 of file util_macros.hpp. ◆ float_float
Definition at line 153 of file util_macros.hpp. ◆ HAS_COMMA
Value:
_ARG128(__VA_ARGS__, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) #define _ARG128(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75, _76, _77, _78, _79, _80, _81, _82, _83, _84, _85, _86, _87, _88, _89, _90, _91, _92, _93, _94, _95, _96, _97, _98, _99, _100, _101, _102, _103, _104, _105, _106, _107, _108, _109, _110, _111, _112, _113, _114, _115, _116, _117, _118, _119, _120, _121, _122, _123, _124, _125, _126, _127,...) Definition: util_macros.hpp:92 Definition at line 101 of file util_macros.hpp. ◆ HAS_PARENS
Definition at line 79 of file util_macros.hpp. ◆ HAS_PARENS_I
Definition at line 80 of file util_macros.hpp. ◆ IF_DEFINED
Do ACTION if NAME is defined. Definition at line 300 of file util_macros.hpp. ◆ IF_ELSE_DEFINED
Do IF if NAME is defined, otherwise do ELSE. Definition at line 304 of file util_macros.hpp. ◆ IF_ELSE_EMPTY
Definition at line 185 of file util_macros.hpp. ◆ IF_ELSE_EQUAL
Definition at line 174 of file util_macros.hpp. ◆ IF_ELSE_TOKEN_DEFINED
Definition at line 312 of file util_macros.hpp. ◆ IF_ELSEIF
Definition at line 357 of file util_macros.hpp. ◆ IF_ELSEIF_5
Value:
BOOST_PP_IF(VAR1, _1, \ BOOST_PP_IF(VAR2, _2, _3)) Definition at line 354 of file util_macros.hpp. ◆ IF_ELSEIF_7
Value:
BOOST_PP_IF(VAR1, _1, \ BOOST_PP_IF(VAR2, _2, \ BOOST_PP_IF(VAR3, _3, _4))) Definition at line 350 of file util_macros.hpp. ◆ IF_ELSEIF_9
Value:
BOOST_PP_IF(VAR1, _1, \ BOOST_PP_IF(VAR2, _2, \ BOOST_PP_IF(VAR3, _3, \ BOOST_PP_IF(VAR4, _4, _5)))) Definition at line 345 of file util_macros.hpp. ◆ IF_EMPTY
Definition at line 183 of file util_macros.hpp. ◆ IF_EQUAL
Definition at line 172 of file util_macros.hpp. ◆ IF_NOT_DEFINED
Do ACTION if NAME is undefined. Definition at line 302 of file util_macros.hpp. ◆ IF_NOT_EMPTY
Definition at line 184 of file util_macros.hpp. ◆ IF_NOT_EQUAL
Definition at line 173 of file util_macros.hpp. ◆ IF_TOKEN_DEFINED
Definition at line 310 of file util_macros.hpp. ◆ IF_TOKEN_UNDEFINED
Definition at line 311 of file util_macros.hpp. ◆ INSERT_NONEMPTYDefinition at line 129 of file util_macros.hpp. ◆ INSERT_NONEMPTY_I0
Definition at line 130 of file util_macros.hpp. ◆ INSERT_NONEMPTY_I1
Definition at line 131 of file util_macros.hpp. ◆ int_int
Definition at line 152 of file util_macros.hpp. ◆ IS_ELLIPSIS
Definition at line 338 of file util_macros.hpp. ◆ IS_EMPTYDefinition at line 182 of file util_macros.hpp. ◆ IS_EQUAL
Definition at line 171 of file util_macros.hpp. ◆ IS_TYPE
Definition at line 159 of file util_macros.hpp. ◆ ISEMPTY
Definition at line 113 of file util_macros.hpp. ◆ ISEMPTY_I
Value:
ISEMPTY_II(A,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
Definition at line 114 of file util_macros.hpp. ◆ ISEMPTY_II
Definition at line 118 of file util_macros.hpp. ◆ LAST_ARG_VARIADIC
Definition at line 337 of file util_macros.hpp. ◆ MAKE_STATIC_SET
Value:
static const std::set<TYPE> NAME(NAME##_array, Utils::endA( NAME##_array )); #define BRACED_INIT_LIST(...) Macro for defining a static const vector easily. Definition: util_macros.hpp:366 Definition at line 370 of file util_macros.hpp. ◆ MAKE_STATIC_VECTOR
Value:
static const std::vector<TYPE> NAME(NAME##_array, Utils::endA( NAME##_array )); #define BRACED_INIT_LIST(...) Macro for defining a static const vector easily. Definition: util_macros.hpp:366 Definition at line 367 of file util_macros.hpp. ◆ MAYBE_STRIP_PARENS
Definition at line 69 of file util_macros.hpp. ◆ MAYBE_STRIP_PARENS_1
Definition at line 71 of file util_macros.hpp. ◆ MAYBE_STRIP_PARENS_2
Definition at line 72 of file util_macros.hpp. ◆ MAYBE_STRIP_PARENS_2_I
Definition at line 73 of file util_macros.hpp. ◆ MAYBE_STRIP_PARENS_I
Definition at line 70 of file util_macros.hpp. ◆ ModelParameters_ModelParameters
Definition at line 158 of file util_macros.hpp. ◆ PAIR_ELEMENT0
Definition at line 137 of file util_macros.hpp. ◆ PAIR_ELEMENT0_I
Definition at line 138 of file util_macros.hpp. ◆ PAIR_ELEMENT1
Definition at line 139 of file util_macros.hpp. ◆ PAIR_ELEMENT1_I
Definition at line 140 of file util_macros.hpp. ◆ POP_LAST
Pop the last argument off a Boost preprocessor sequence. Definition at line 321 of file util_macros.hpp. ◆ POP_LAST_1
Definition at line 322 of file util_macros.hpp. ◆ POP_LAST_10Definition at line 331 of file util_macros.hpp. ◆ POP_LAST_2
Definition at line 323 of file util_macros.hpp. ◆ POP_LAST_3Definition at line 324 of file util_macros.hpp. ◆ POP_LAST_4◆ POP_LAST_5Definition at line 326 of file util_macros.hpp. ◆ POP_LAST_6Definition at line 327 of file util_macros.hpp. ◆ POP_LAST_7Definition at line 328 of file util_macros.hpp. ◆ POP_LAST_8Definition at line 329 of file util_macros.hpp. ◆ POP_LAST_9Definition at line 330 of file util_macros.hpp. ◆ PROBE
Definition at line 285 of file util_macros.hpp. ◆ REMFIRST
Definition at line 54 of file util_macros.hpp. ◆ REMFIRST_I
Definition at line 55 of file util_macros.hpp. ◆ string_string
Definition at line 157 of file util_macros.hpp. ◆ STRIP_PARENS
Definition at line 63 of file util_macros.hpp. ◆ STRIP_PARENS_I
Definition at line 64 of file util_macros.hpp. ◆ STRIP_VARIADIC_ARG
Definition at line 339 of file util_macros.hpp. ◆ TEST_ARITY
Definition at line 67 of file util_macros.hpp. ◆ TEST_ARITY_I
Definition at line 68 of file util_macros.hpp. ◆ TOKEN_DEFINED
Definition at line 309 of file util_macros.hpp. ◆ VA_NARGS
Definition at line 200 of file util_macros.hpp. ◆ VA_NARGS_AB
Definition at line 218 of file util_macros.hpp. ◆ VA_NARGS_AB_IMPL
Definition at line 217 of file util_macros.hpp. ◆ VA_NARGS_IMPL
Definition at line 199 of file util_macros.hpp. ◆ VA_NARGS_NESTED
Definition at line 209 of file util_macros.hpp. ◆ VA_NARGS_NESTED_IMPL
Definition at line 208 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE
Definition at line 228 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE_A
Definition at line 238 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE_A_IMPL
Definition at line 237 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE_ABC
Definition at line 248 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE_ABC_IMPL
Definition at line 247 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_ONE_IMPL
Definition at line 227 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_TWO_ABC
Definition at line 260 of file util_macros.hpp. ◆ VA_NARGS_SWITCH_ON_GT_TWO_ABC_IMPL
Value:
IF_ELSE_EQUAL(VARARG_SWITCH_ON_GT_TWO_ABC_TESTER,\
Definition at line 258 of file util_macros.hpp. ◆ VARARG
Definition at line 203 of file util_macros.hpp. ◆ VARARG_AB
Definition at line 221 of file util_macros.hpp. ◆ VARARG_AB_IMPL
Definition at line 220 of file util_macros.hpp. ◆ VARARG_AB_IMPL2
Definition at line 219 of file util_macros.hpp. ◆ VARARG_IMPL
Definition at line 202 of file util_macros.hpp. ◆ VARARG_IMPL2
Definition at line 201 of file util_macros.hpp. ◆ VARARG_NESTED
Definition at line 212 of file util_macros.hpp. ◆ VARARG_NESTED_IMPL
Definition at line 211 of file util_macros.hpp. ◆ VARARG_NESTED_IMPL2
Definition at line 210 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE
Definition at line 231 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_A
Definition at line 241 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_A_IMPL
Definition at line 240 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_A_IMPL2
Definition at line 239 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_A_TESTER_1
Definition at line 236 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_ABC
Definition at line 251 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_ABC_IMPL
Definition at line 250 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_ABC_IMPL2
Definition at line 249 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_ABC_TESTER_1
Definition at line 246 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_IMPL
Definition at line 230 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_IMPL2
Definition at line 229 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_ONE_TESTER_1
Definition at line 226 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_TWO_ABC
Definition at line 263 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_TWO_ABC_IMPL
Definition at line 262 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_TWO_ABC_IMPL2
Definition at line 261 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_TWO_ABC_TESTER_1
Definition at line 257 of file util_macros.hpp. ◆ VARARG_SWITCH_ON_GT_TWO_ABC_TESTER_2
Definition at line 256 of file util_macros.hpp. ◆ void_void
Definition at line 151 of file util_macros.hpp. |