PageRenderTime 48ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
Swig | 49 lines | 39 code | 10 blank | 0 comment | 0 complexity | e96a53630e7492bad1e36d35dd76c564 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %module template_tbase_template
  2. %warnfilter(SWIGWARN_RUBY_WRONG_NAME) traits<Double, Double>; /* Ruby, wrong class name */
  3. %warnfilter(SWIGWARN_PARSE_EXPLICIT_TEMPLATE);
  4. %inline %{
  5. typedef double Double;
  6. template <class ArgType, class ResType>
  7. struct Funktion
  8. {
  9. char *test() { return (char *) "test"; }
  10. };
  11. template <class ArgType, class ResType>
  12. struct traits
  13. {
  14. typedef ArgType arg_type;
  15. typedef ResType res_type;
  16. typedef Funktion<ArgType, double> base;
  17. };
  18. // Egad!
  19. template <class AF, class AG>
  20. struct Class_
  21. : Funktion<typename traits<AF, AG>::arg_type,
  22. typename traits<AF, AG>::res_type>
  23. {
  24. };
  25. template <class AF, class RF>
  26. typename traits<AF, RF>::base
  27. make_Class()
  28. {
  29. return Class_<AF, RF>();
  30. }
  31. %}
  32. %{
  33. template struct Funktion <Double, Double>;
  34. template struct Class_ <Double, Double>;
  35. %}
  36. %template(traits_dd) traits <Double, Double>;
  37. %template(Funktion_dd) Funktion <Double, Double>;
  38. %template(Class_dd) Class_ <Double, Double>;
  39. %template(make_Class_dd) make_Class<Double,Double>;