Implementation of the make enum macro. More...
#include <dune/common/exceptions.hh>Go to the source code of this file.
Namespaces | |
| namespace | Ikarus |
Macros | |
| #define | PARENS () |
| #define | ENUM_CASE(name) |
| #define | EXPAND(arg) EXPAND1(EXPAND1(EXPAND1(EXPAND1(arg)))) |
| #define | EXPAND1(arg) EXPAND2(EXPAND2(EXPAND2(EXPAND2(arg)))) |
| #define | EXPAND2(arg) EXPAND3(EXPAND3(EXPAND3(EXPAND3(arg)))) |
| #define | EXPAND3(arg) EXPAND4(EXPAND4(EXPAND4(EXPAND4(arg)))) |
| #define | EXPAND4(arg) arg |
| #define | FOR_EACH(macro, ...) __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__))) |
| #define | FOR_EACH_HELPER(macro, a1, ...) macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__)) |
| #define | FOR_EACH_AGAIN() FOR_EACH_HELPER |
| #define | ENUM_CASE(name) |
| #define | MAKE_ENUM(type, ...) |
| Macro to create an enumeration with a string conversion function.The macro creates an enum class with a BEGIN and END enumerator, and provides a constexpr toString function for string conversion. More... | |
Functions | |
| template<typename MessageType > | |
| MessageType & | Ikarus::increment (MessageType &e) |
| Increments the given enum value. More... | |
| #define ENUM_CASE | ( | name | ) |
| #define ENUM_CASE | ( | name | ) |
| #define EXPAND4 | ( | arg | ) | arg |
| #define FOR_EACH | ( | macro, | |
| ... | |||
| ) | __VA_OPT__(EXPAND(FOR_EACH_HELPER(macro, __VA_ARGS__))) |
| #define FOR_EACH_AGAIN | ( | ) | FOR_EACH_HELPER |
| #define FOR_EACH_HELPER | ( | macro, | |
| a1, | |||
| ... | |||
| ) | macro(a1) __VA_OPT__(FOR_EACH_AGAIN PARENS(macro, __VA_ARGS__)) |
| #define PARENS () |