Fix template template parameters with default arguments
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10179 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e024efafce
commit
8f09d00bb0
5 changed files with 76 additions and 1 deletions
37
Examples/test-suite/template_template_parameters.i
Normal file
37
Examples/test-suite/template_template_parameters.i
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
%module template_template_parameters
|
||||
|
||||
|
||||
%inline %{
|
||||
namespace pfc {
|
||||
template<typename t_item, template <typename> class t_alloc> class array_t {};
|
||||
template<typename t_item> class alloc_fast {
|
||||
public:
|
||||
typedef t_item alloc_type;
|
||||
};
|
||||
}
|
||||
|
||||
template<typename t_item, typename t2> class list_impl_t {};
|
||||
|
||||
template<typename t_item, template<typename> class t_alloc = pfc::alloc_fast >
|
||||
class list_t : public list_impl_t<t_item,pfc::array_t<t_item,t_alloc> > {
|
||||
public:
|
||||
t_item item;
|
||||
// typename t_alloc<t_item>::alloc_type allotype; // SWIG can't handle this yet
|
||||
void xx() {
|
||||
typename t_alloc<t_item>::alloc_type atype; // this type is the same as t_item type
|
||||
atype = 10;
|
||||
}
|
||||
};
|
||||
|
||||
void TestInstantiations() {
|
||||
pfc::array_t<int, pfc::alloc_fast> myArrayInt;
|
||||
list_impl_t<int, pfc::array_t<int, pfc::alloc_fast> > myListImplInt;
|
||||
}
|
||||
%}
|
||||
|
||||
%template(ListImplFastBool) list_impl_t<bool, pfc::array_t<bool, pfc::alloc_fast> >;
|
||||
%template(ListFastBool) list_t<bool, pfc::alloc_fast>;
|
||||
|
||||
%template(ListImplFastDouble) list_impl_t<double, pfc::array_t<double, pfc::alloc_fast> >;
|
||||
%template(ListDefaultDouble) list_t<double>;
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue