| /* 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; |
| } |
| }; |
| %} |
| |