E2418 インスタンス化の最大深度を超過した; 再帰をチェック (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;// エラー: インスタンス化の深度が制限を超えています
}