mirror of https://github.com/swig/swig
39 lines
726 B
OpenEdge ABL
39 lines
726 B
OpenEdge ABL
/* This unit tests whether SWIG correctly parses the code and makes wrappers
|
|
for the new C++11 extern templates (explicit template instantiation without
|
|
using the translation unit).
|
|
*/
|
|
%module cpp11_template_explicit
|
|
|
|
#pragma SWIG nowarn=SWIGWARN_PARSE_EXPLICIT_TEMPLATE
|
|
|
|
%inline %{
|
|
|
|
template<typename T> class Temper {
|
|
public:
|
|
T val;
|
|
};
|
|
|
|
class A {
|
|
public:
|
|
int member;
|
|
int memberFunction() { return 100; }
|
|
};
|
|
|
|
class B {
|
|
public:
|
|
short member;
|
|
short memberFunction() { return 100; }
|
|
};
|
|
|
|
template class Temper<A>;
|
|
extern template class Temper<B>;
|
|
|
|
template class Temper<A*>;
|
|
extern template class Temper<B*>;
|
|
|
|
template class Temper<int>;
|
|
extern template class Temper<short>;
|
|
%}
|
|
|
|
%template(TemperInt) Temper<int>;
|