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.
diff --git a/example/example-constants-and-functions.py b/example/example-constants-and-functions.py
index 0a5224a..852902f 100755
--- a/example/example-constants-and-functions.py
+++ b/example/example-constants-and-functions.py
@@ -22,7 +22,26 @@
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)))
diff --git a/example/example-constants-and-functions.ref b/example/example-constants-and-functions.ref
index f824806..4805631 100644
--- a/example/example-constants-and-functions.ref
+++ b/example/example-constants-and-functions.ref
@@ -12,6 +12,8 @@
None
test_ecenum(ECMyEnum::Three)
test_ecenum(ECMyEnum::Two)
+Good: caught expected TypeError exceptions for scoped enum ==/!= int comparisons
+Good: no TypeError exception for unscoped enum ==/!= int comparisions
enum->integer = 2
integer->enum = EMyEnumeration.ESecondEntry
A constant = 14