使用嵌套在传递给模板的对象中的模板别名的问题

时间:2013-11-15 20:17:52

标签: c++ templates

我在尝试让模板使用嵌套在其中一个参数中的别名时遇到了问题。如果我在模板本身中创建一个别名并将其用作另一个模板的参数,它就可以工作。我想在不这样做的情况下使用它,以便它可以通过继承传递给另一个模板。

我认为我的问题与编译器有关,不知道模板参数是什么,并说模板参数无效,但我不知道是否有办法在不使用额外别名的情况下纠正这个问题。 / 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。

任何帮助都将不胜感激。

0 个答案:

没有答案