嵌套模板类:无法将函数定义与现有声明匹配

时间:2013-05-10 23:37:30

标签: c++ class templates nvcc

使用MSVC ++ 2010(NVCC(CUDA)编译器),在其声明块之外定义非模板化父类的嵌套模板化类成员:

class cls {
public:
    template <typename V> class nest {
    public:
        template <typename W> void bar(W x);
    };
};

template <typename V>
template <typename W>
void cls::nest<V>::bar(W x) {}

的产率:

error C2244: 'bar' : unable to match function definition to an existing declaration
1>          definition
1>          'void cls::nest<V>::bar(W)'
1>          existing declarations
1>          'void cls::nest<V>::bar(W)'

为什么?

更新:似乎是一个NVCC错误。 http://ideone.com/rc7R32有效,但不适用于NVCC。来自Nvidia的任何人都在评论?

0 个答案:

没有答案