E2418 インスタンス化の最大深度を超過した; 再帰をチェック (C++)

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

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

コンパイラは 256 レベルまでのインスタンス化をサポートします。これを超えると,このエラーが発生します。パーサーは再帰関数を使って型のインスタンス化を管理するため,主な問題はスタック深度の制御です。このエラーが発生する例を次に示します。



 template<int T>
 class foo {
 public:
 static const int x = foo<T - 1>::x;
 };
 template<int T>
 class foo<1> {
 public:
 static const int x = 1;
 };
 int main() {
 int y = foo<100000>::x;// エラー: インスタンス化の深度が制限を超えています
 }