我在尝试让模板使用嵌套在其中一个参数中的别名时遇到了问题。如果我在模板本身中创建一个别名并将其用作另一个模板的参数,它就可以工作。我想在不这样做的情况下使用它,以便它可以通过继承传递给另一个模板。
我认为我的问题与编译器有关,不知道模板参数是什么,并说模板参数无效,但我不知道是否有办法在不使用额外别名的情况下纠正这个问题。 / p>
template< template<typename>class T >
struct TemplateWrapper {
template<typename U>
using type = T<U>;
};
template<typename T>
struct TemplateTester{
template<typename U>
using type = typename T::template type<U>; //This works fine
TemplateWrapper<type> test; //This works fine
TemplateWrapper< typename T::template type > test2; //error: template argument 1 is invalid
};
我正在使用MinGW和GCC 4.7.1。
任何帮助都将不胜感激。