タイトルが示すように、コンパイル中にコンパイラが到達した最大インスタンス deph を提供するコンパイラ ログ設定はありますか?
コンパイルが最大テンプレート deph (GCC のデフォルト値は C++11 モードで 900) を超えた場合、コンパイルは失敗します。しかし、必要なのは、コンパイルが成功したときにコンパイラが到達したテンプレートのインスタンス化の最大深度を取得することです。
g++
にはそのようなオプションがありますが、たとえば kubuntu ではデフォルトで有効になっていません。
以下はgcc/cp/tree.c
fromの一部ですgcc-4.8.1
(したがって、GPL の下でライセンスされています)。
void
cxx_print_statistics (void)
{
print_search_statistics ();
print_class_statistics ();
print_template_statistics ();
if (GATHER_STATISTICS)
fprintf (stderr, "maximum template instantiation depth reached: %d\n",
depth_reached);
}
-fdump-statistics -fstats
コマンドラインに追加するときにこれらの統計を取得できますが、 GATHER_STATISTICS
コンパイル時に有効にする必要があるため、探している機能を取得するにgcc
はおそらく再構築する必要があります.gcc