Как видно из названия, Существуют ли какие-либо параметры ведения журнала компилятора, которые обеспечивают максимальный инстансинг, достигнутый компилятором во время компиляции?
Если при компиляции превышен максимальный шаблон deph (значение GCC которого по умолчанию равно 900 в режиме C ++ 11), компиляция завершится неудачно. Но мне нужно получить максимальную глубину создания шаблона, которой достиг компилятор во время успешной компиляции.
g++
есть такая опция, но она не включена по умолчанию, например, в kubuntu.
Следующее является частью gcc/cp/tree.c
от 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
для того, чтобы получить функциональность, которую вы ищете.
Других решений пока нет …