mirror of https://github.com/swig/swig
42 lines
712 B
OpenEdge ABL
42 lines
712 B
OpenEdge ABL
/* 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;
|
|
}
|
|
};
|
|
%}
|
|
|