12,32c12,16
< enum UnscopedEnum {
< EOne = 1,
< ETwo
< };
<
< enum class ScopedEnum {
< Two = 2,
< Three
< };
<
< enum Flags {
< Read = 4,
< Write = 2,
< Execute = 1
< };
<
< class ClassWithUnscopedEnum {
< public:
< enum EMode {
< EFirstMode = 1,
< ESecondMode
---
> TEST_SUBMODULE(enums, m) {
> // test_unscoped_enum
> enum UnscopedEnum {
> EOne = 1,
> ETwo
34,46d17
<
< static EMode test_function(EMode mode) {
< return mode;
< }
< };
<
< std::string test_scoped_enum(ScopedEnum z) {
< return "ScopedEnum::" + std::string(z == ScopedEnum::Two ? "Two" : "Three");
< }
<
< test_initializer enums([](py::module &m) {
< m.def("test_scoped_enum", &test_scoped_enum);
<
51a23,27
> // test_scoped_enum
> enum class ScopedEnum {
> Two = 2,
> Three
> };
55a32,41
> m.def("test_scoped_enum", [](ScopedEnum z) {
> return "ScopedEnum::" + std::string(z == ScopedEnum::Two ? "Two" : "Three");
> });
>
> // test_binary_operators
> enum Flags {
> Read = 4,
> Write = 2,
> Execute = 1
> };
61a48,59
> // test_implicit_conversion
> class ClassWithUnscopedEnum {
> public:
> enum EMode {
> EFirstMode = 1,
> ESecondMode
> };
>
> static EMode test_function(EMode mode) {
> return mode;
> }
> };
68c66,71
< });
---
>
> // test_enum_to_int
> m.def("test_enum_to_int", [](int) { });
> m.def("test_enum_to_uint", [](uint32_t) { });
> m.def("test_enum_to_long_long", [](long long) { });
> }