表示: Delphi
C++
表示設定
E2355 再帰テンプレート関数:'x' が 'y' をインスタンス化した (C++)
提供:RAD Studio XE2
コンパイラは,再帰的なテンプレート関数を検出しました。例を示します。
template<class T> void f(T x) { f((T*)0); // 再帰的なテンプレート関数 } void main() { f(0); }
コンパイラは,再帰的なインスタンス化がネストするたびに 1 つのメッセージを生成するため,通常,再帰の発生場所は明確です。再帰的なテンプレートを修正するには,依存関係を変更するか,再帰を防ぐ特別なバージョンを提供します。たとえば,上のプログラムに次の関数定義を追加すると,無限の再帰がなくなります。
void f(int **) { }