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