E2355 再帰テンプレート関数:'x' が 'y' をインスタンス化した (C++)

提供: RAD Studio
移動先: 案内検索

コンパイラのエラーと警告(C++):インデックス への移動

コンパイラは,再帰的なテンプレート関数を検出しました。例を示します。



     template<class T> void f(T x)
     {
        f((T*)0);   // 再帰的なテンプレート関数
     }
     void main()
     {
        f(0);
     }



コンパイラは,再帰的なインスタンス化がネストするたびに 1 つのメッセージを生成するため,通常,再帰の発生場所は明確です。再帰的なテンプレートを修正するには,依存関係を変更するか,再帰を防ぐ特別なバージョンを提供します。たとえば,上のプログラムに次の関数定義を追加すると,無限の再帰がなくなります。



     void f(int **)
     {
     }