/trunk/Examples/test-suite/smart_pointer_multi.i

# · Swig · 39 lines · 32 code · 7 blank · 0 comment · 0 complexity · aeff62f7d593e551a3518b152e18eeba MD5 · raw file

  1. // Test cases for classes that do *NOT* result in smart-pointer wrapping
  2. %module smart_pointer_multi
  3. %inline %{
  4. struct Foo {
  5. int x;
  6. int getx() { return x; }
  7. };
  8. class Bar {
  9. Foo *f;
  10. public:
  11. Bar(Foo *f) : f(f) { }
  12. Foo *operator->() {
  13. return f;
  14. }
  15. };
  16. class Spam {
  17. Bar *b;
  18. public:
  19. Spam(Bar *b) : b(b) { }
  20. Bar operator->() {
  21. return *b;
  22. }
  23. };
  24. class Grok {
  25. Bar *b;
  26. public:
  27. Grok(Bar *b) : b(b) { }
  28. Bar &operator->() {
  29. return *b;
  30. }
  31. };
  32. %}