/trunk/Examples/test-suite/smart_pointer_template_const_overload.i
Swig | 37 lines | 32 code | 5 blank | 0 comment | 0 complexity | 9566a9a5ebe6d058b14ab700a4f8a779 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module smart_pointer_template_const_overload
- %warnfilter(SWIGWARN_LANG_OVERLOAD_IGNORED) SmartPointer<FooImplementation>::operator->; // Overloaded method SmartPointer< FooImplementation >::operator ->() ignored
- %inline %{
- template <class T> class SmartPointer {
- T *ptr;
- public:
- SmartPointer(T *t = 0) : ptr(t) {}
- inline const T * operator->() const { return ptr; }
- inline T * operator->() { return ptr; }
- };
- class FooImplementation {
- public:
- int mingy() { return 0; }
- int constmingy() const { return 0; }
- static int thingy() { return 0; }
- static int svariable;
- static const int constsvariable;
- int normalvariable;
- };
- int FooImplementation::svariable = 0;
- const int FooImplementation::constsvariable = 2;
- void tester() {
- SmartPointer<FooImplementation> p;
- p->mingy();
- p->constmingy();
- p->thingy();
- int a = p->svariable;
- a = p->constsvariable;
- a = p->normalvariable;
- }
- %}
- %template(FooSmartPointer) SmartPointer<FooImplementation>;