Получение max deph экземпляра шаблона, используемого во время компиляции

Как видно из названия, Существуют ли какие-либо параметры ведения журнала компилятора, которые обеспечивают максимальный инстансинг, достигнутый компилятором во время компиляции?

Если при компиляции превышен максимальный шаблон deph (значение GCC которого по умолчанию равно 900 в режиме C ++ 11), компиляция завершится неудачно. Но мне нужно получить максимальную глубину создания шаблона, которой достиг компилятор во время успешной компиляции.

8

Решение

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 для того, чтобы получить функциональность, которую вы ищете.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]