enum MyEnum { BRUSSEL_ENUM(ToString, FromString) EnumElement1, EnumElement2, EnumElement3, }; // Let's also test enum class enum class CountedEnumAll { BRUSSEL_ENUM(ToString, FromString) CEA_Foo, CEA_Bar, CEA_COUNT, }; enum CountedEnum { BRUSSEL_ENUM(ToString, FromString, RemovePrefix CE_, AddPrefix CustomPrefix, ExcludeHeuristics) CE_Foo, CE_Bar, CE_FooBar, CE_COUNT, }; namespace MyNamespace { enum class MyNamespacedEnum { BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics) MNE_Foo, MNE_Bar, }; namespace details { enum MyNamespacedEnum { BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics) MNE_Foo, MNE_Bar, }; } } namespace foo::details { enum Enum { BRUSSEL_ENUM(ToString, FromString, ExcludeHeuristics) }; }