| /* This interface checks whether SWIG correctly compiles the new | |
| explicit conversion operators feature introduced in C++11. | |
| */ | |
| %module cpp11_explicit_conversion_operators | |
| %warnfilter(SWIGWARN_LANG_IDENTIFIER) Testable::operator bool; | |
| %rename(AsInteger) Testable::operator int; | |
| %inline %{ | |
| class U { | |
| public: | |
| int u; | |
| }; | |
| class V { | |
| public: | |
| int v; | |
| }; | |
| class TestClass { | |
| public: | |
| //implicit converting constructor | |
| TestClass( U const &val ) { t=val.u; } | |
| // explicit constructor | |
| explicit TestClass( V const &val ) { t=val.v; } | |
| int t; | |
| }; | |
| struct Testable { | |
| // explicit conversion operator | |
| explicit operator bool() const { | |
| return false; | |
| } | |
| explicit operator int() { | |
| return 42; | |
| } | |
| }; | |
| %} | |