diff options
Diffstat (limited to 'Examples/test-suite/errors/cpp_template_explicit_instantiation.i')
-rw-r--r-- | Examples/test-suite/errors/cpp_template_explicit_instantiation.i | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Examples/test-suite/errors/cpp_template_explicit_instantiation.i b/Examples/test-suite/errors/cpp_template_explicit_instantiation.i new file mode 100644 index 000000000..97513724b --- /dev/null +++ b/Examples/test-suite/errors/cpp_template_explicit_instantiation.i @@ -0,0 +1,24 @@ +%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 + + |