swig/Examples/test-suite/errors/cpp_template_explicit_instantiation.i
William S Fulton 017900d57e Extern template tweaks
Document extern template functions support.
Extern templates result in new warning to differentiate
from template explicit instantiation definition warning.
2022-01-25 00:28:08 +00:00

24 lines
751 B
OpenEdge ABL

%module xxx
%inline %{
namespace std {
template<typename T> class vector {};
}
template<typename T> void Func() {}
%}
%inline %{
// Class template
template class std::vector<int>; // C++03 template explicit instantiation definition in C++
extern template class std::vector<int>; // C++11 template explicit instantiation declaration (extern template)
%}
%template(VectorInt) std::vector<int>; // SWIG template instantiation
%inline %{
// Function template
template void Func<int>(); // C++03 template explicit instantiation definition in C++
extern template void Func<int>(); // C++11 template explicit instantiation declaration (extern template)
%}
%template(FuncInt) Func<int>; // SWIG template instantiation