Поделиться через


Предупреждение компилятора (уровень 1) C4788

"идентификатор": идентификатор усечен до символов "число"

Компилятор ограничивает максимальную длину, допустимую для имени функции. Когда компилятор создает funclets для кода EH/SEH, он формирует имя funclet путем подготовки имени функции с некоторым текстом, например "__catch", "__unwind" или другой строкой.

Полученное имя funclet может быть слишком длинным, и компилятор усечет его и создаст C4788.

Чтобы устранить это предупреждение, сократите исходное имя функции. Если функция является шаблоном или методом функции C++, используйте typedef для части имени. Например:

C1<x, y, z<T>>::C2<a,b,c>::f

можно заменить следующими способами:

typedef C1<x, y, z<T>>::C2<a,b,c> new_class ;
new_class::f

Это предупреждение возникает только в компиляторе x64.