19 .
value(
"EOne", EOne,
"Docstring for EOne")
20 .value(
"ETwo", ETwo,
"Docstring for ETwo")
24 enum class ScopedEnum {
29 .
value(
"Two", ScopedEnum::Two)
30 .value(
"Three", ScopedEnum::Three);
32 m.
def(
"test_scoped_enum", [](ScopedEnum z) {
33 return "ScopedEnum::" + std::string(z == ScopedEnum::Two ?
"Two" :
"Three");
43 .
value(
"Read", Flags::Read)
44 .value(
"Write", Flags::Write)
45 .value(
"Execute", Flags::Execute)
49 class ClassWithUnscopedEnum {
56 static EMode test_function(EMode mode) {
61 exenum_class.
def_static(
"test_function", &ClassWithUnscopedEnum::test_function);
63 .
value(
"EFirstMode", ClassWithUnscopedEnum::EFirstMode)
64 .value(
"ESecondMode", ClassWithUnscopedEnum::ESecondMode)
68 m.
def(
"test_enum_to_int", [](
int) { });
69 m.
def(
"test_enum_to_uint", [](uint32_t) { });
70 m.
def(
"test_enum_to_long_long", [](
long long) { });
78 m.
def(
"register_bad_enum", [m]() {
80 .
value(
"ONE", SimpleEnum::ONE)
81 .value(
"ONE", SimpleEnum::TWO)
82 .value(
"ONE", SimpleEnum::THREE)
Binds C++ enumerations and enumeration classes to Python.
Annotation to mark enums as an arithmetic type.
test_initializer enums("enums", test_submodule_enums)
class_ & def_static(const char *name_, Func &&f, const Extra &... extra)
#define TEST_SUBMODULE(name, variable)
bool typename Extra class_ & def(const char *name_, Func &&f, const Extra &... extra)