Document extern template functions support. Extern templates result in new warning to differentiate from template explicit instantiation definition warning.
24 lines
751 B
OpenEdge ABL
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
|
|
|
|
|