mirror of
https://github.com/pybind/pybind11.git
synced 2026-05-11 17:00:34 +00:00
Only support ==/!= int on unscoped enums
This makes the Python interface mirror the C++ interface: pybind11-exported scoped enums aren't directly comparable to the underlying integer values.
This commit is contained in:
@@ -22,7 +22,26 @@ print(test_function(7))
|
||||
print(test_function(EMyEnumeration.EFirstEntry))
|
||||
print(test_function(EMyEnumeration.ESecondEntry))
|
||||
test_ecenum(ECMyEnum.Three)
|
||||
test_ecenum(ECMyEnum.Two)
|
||||
z = ECMyEnum.Two
|
||||
test_ecenum(z)
|
||||
try:
|
||||
z == 2
|
||||
print("Bad: expected a TypeError exception")
|
||||
except TypeError:
|
||||
try:
|
||||
z != 3
|
||||
print("Bad: expected a TypeError exception")
|
||||
except TypeError:
|
||||
print("Good: caught expected TypeError exceptions for scoped enum ==/!= int comparisons")
|
||||
|
||||
y = EMyEnumeration.ESecondEntry
|
||||
try:
|
||||
y == 2
|
||||
y != 2
|
||||
print("Good: no TypeError exception for unscoped enum ==/!= int comparisions")
|
||||
except TypeError:
|
||||
print("Bad: caught TypeError exception for unscoped enum ==/!= int comparisons")
|
||||
|
||||
print("enum->integer = %i" % int(EMyEnumeration.ESecondEntry))
|
||||
print("integer->enum = %s" % str(EMyEnumeration(2)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user