blob: 632355afc938616593977cf9734ab9957ae62036 [file] [log] [blame]
/* 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;
}
};
%}