File: cpp_template_forward.i

package info (click to toggle)
swig 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 46,232 kB
  • sloc: cpp: 54,631; ansic: 29,122; java: 17,530; python: 12,505; cs: 10,369; ruby: 7,232; yacc: 6,477; makefile: 5,965; javascript: 5,520; sh: 5,415; perl: 4,187; php: 3,693; ml: 2,187; lisp: 2,056; tcl: 1,991; xml: 115
file content (20 lines) | stat: -rw-r--r-- 931 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%module xxx


namespace Space {
  template <typename T> struct ForwardDeclaredTemplate;
  %template(ForwardDeclaredTemplate_double) ForwardDeclaredTemplate<double>;

  template <typename T> struct ForwardDeclaredSpecialized;
  %template(ForwardDeclaredTemplate_int) ForwardDeclaredSpecialized<int>; // no primary defined
  %template(ForwardDeclaredTemplate_double) ForwardDeclaredSpecialized<double>; // needs to be after the specialized template definition.
  template <> struct ForwardDeclaredSpecialized<double> {
    void specialized(const ForwardDeclaredSpecialized& other) { }
  };

  template <typename T> struct ForwardDeclaredMisplacedPrimary;
  %template(ForwardDeclaredTemplate_double) ForwardDeclaredMisplacedPrimary<double>; // needs to be after the primary template definition.
  template <typename T> struct ForwardDeclaredMisplacedPrimary {
    void primary(const ForwardDeclaredMisplacedPrimary& other) { }
  };
}