Enabled support for variadic %template directive.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-matevz@11487 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Matevz Jekovec 2009-08-01 22:00:36 +00:00
commit 24402abf7d
2 changed files with 116 additions and 12 deletions

View file

@ -22,19 +22,19 @@ class MultiArgs<int, std::vector<int>, std::map<std::string, std::vector<int>>>
%}
// TODO
//%template (MultiArgs) MultiArgs<int, std::vector<int>, std::map<std::string, std::vector<int>>>;
%template (MultiArgs1) MultiArgs<int, std::vector<int>, std::map<std::string, std::vector<int>>>;
////////////////////////
// Variadic sizeof... //
////////////////////////
%inline %{
template<typename ...Args> struct SizeOf {
template<typename... Args> struct SizeOf {
static const int size = sizeof...(Args);
};
%}
// TODO
//%template (SizeOf) SizeOf<int, int>;
%template (SizeOf1) SizeOf<int, int>;
//////////////////////////
// Variadic inheritance //
@ -59,9 +59,9 @@ public:
template <typename... BaseClasses> class MultiInherit : public BaseClasses... {
public:
MultiInherit(BaseClasses&&... baseClasses) : BaseClasses(baseClasses)... {}
MultiInherit(BaseClasses&... baseClasses) : BaseClasses(baseClasses)... {}
};
%}
// TODO
//%template (MultiInherit) MultiInherit<A,B>;
%template (MultiInherit1) MultiInherit<A,B>;