3

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 からコメントしてくれる人はいますか?

4

0 に答える 0