Extended enum support (#503)

* Allow enums to be ordered
* Support binary operators
This commit is contained in:
Pim Schellart
2016-11-16 11:28:11 -05:00
committed by Wenzel Jakob
parent 2e76daa53f
commit 90d27805b9
3 changed files with 79 additions and 0 deletions

View File

@@ -19,6 +19,12 @@ enum class ScopedEnum {
Three
};
enum Flags {
Read = 4,
Write = 2,
Execute = 1
};
class ClassWithUnscopedEnum {
public:
enum EMode {
@@ -48,6 +54,13 @@ test_initializer enums([](py::module &m) {
.value("Three", ScopedEnum::Three)
;
py::enum_<Flags>(m, "Flags")
.value("Read", Flags::Read)
.value("Write", Flags::Write)
.value("Execute", Flags::Execute)
.export_values();
;
py::class_<ClassWithUnscopedEnum> exenum_class(m, "ClassWithUnscopedEnum");
exenum_class.def_static("test_function", &ClassWithUnscopedEnum::test_function);
py::enum_<ClassWithUnscopedEnum::EMode>(exenum_class, "EMode")