Skip to content

AUI_ENUM_VALUES#

Defines all enum values for AEnumerate.

Header:#include <AUI/Reflect/AEnumerate.h>
CMake:aui_link(my_target PUBLIC aui::core)

Definition#

#define AUI_ENUM_VALUES(enum_t, ...) template<> \
struct AEnumerateAllValues<enum_t>{         \
    static inline constexpr AEnumerate<enum_t>::Values<__VA_ARGS__> get() {return {}; } \
};                                         \
namespace std { inline AString to_wstring(enum_t v) { return AEnumerate<enum_t>::valueToNameMap().optional(v).valueOr("<unknown enum value {}>"_format(int(v))); } } \
inline std::ostream& operator<<(std::ostream& o, enum_t v) { return o << std::to_wstring(v); }

Detailed Description#

Defines all enum values to by used by AEnumerate.

enum class ATextOverflow {
    NONE,
    ELLIPSIS,
    CLIP
};
AUI_ENUM_VALUES(ATextOverflow,
                ATextOverflow::ELLIPSIS,
                ATextOverflow::CLIP)

// AEnumerate<ATextOverflow>::toName(ATextOverflow::CLIP) -> "CLIP"