0

このテンプレート メソッド 'he' を特殊化しようとしていますが、コンパイルできませんでした。それを正しく行う方法は?

    #pragma once
            template<typename A, typename B>
            class template_test
            {
            public:
                template_test();
                ~template_test();

              template<typename C>
              void he(C gg);

            };



            template<typename A, typename B>
            template<typename C>
            void template_test<A, B>::he( C gg )
            {

            }

            template<typename A, typename B>
            template<>
            void template_test<A, B>::he( int gg )
            {

            }

エラー C1506: 回復不能なブロック スコープ エラー
で、関数定義を既存の宣言と一致させることができません

4

1 に答える 1

3

クラスも専門にしています。メンバーだけを特殊化することはできません。

template<>
template<>
void template_test<int, int>::he<int>( int gg )
{

}

ただし、代わりに、オーバーロードを追加するだけです。

 void he(int gg){}
于 2013-04-18T03:27:22.793 に答える