PageRenderTime 40ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
Swig | 35 lines | 28 code | 7 blank | 0 comment | 0 complexity | 30824e9900c565de41079d2c6216fc8f MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. // Tests the use of the %template directive with fully
  2. // qualified scope names
  3. %module template_ns
  4. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) std::my_pair<int, int>; /* Ruby, wrong class name */
  5. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) std::my_pair<double, double>; /* Ruby, wrong class name */
  6. %ignore std::my_pair::my_pair();
  7. %inline %{
  8. namespace std
  9. {
  10. template <class _T1, class _T2>
  11. struct my_pair {
  12. typedef _T1 first_type;
  13. typedef _T2 second_type;
  14. _T1 first;
  15. _T2 second;
  16. my_pair() : first(_T1()), second(_T2()) {}
  17. my_pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {}
  18. template <class _U1, class _U2>
  19. my_pair(const my_pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {}
  20. };
  21. }
  22. %}
  23. // Add copy constructor
  24. %extend std::my_pair {
  25. %template(pair) my_pair<_T1,_T2>;
  26. };
  27. %template(pairii) std::my_pair<int,int>;
  28. %template(pairdd) std::my_pair<double,double>;