正如标题所说,是否有编译器日志记录设置,它提供编译期间编译器达到的最大瞬时deph?
如果编译超出了max template deph(在C ++ 11模式下哪个GCC的默认值为900),则编译失败。但我需要的是获得编译器在成功编译期间达到的最大模板即时深度。
答案 0 :(得分:7)
g++
确实有这样的选项,但是默认情况下它并没有在kubuntu上启用。
以下是来自gcc/cp/tree.c
的{{1}}的一部分(因此根据GPL许可):
gcc-4.8.1
您可以在向命令行添加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
才能获得您正在寻找的功能。