编译器警告(等级 1)C4788
“identifier”:标识符被截断为“number”个字符
编译器限制函数名允许的最大长度。 编译器为 EH/SEH 代码生成 funclet 时通过在函数名称前追加某些文本(例如“__catch”、“__unwind”或其他字符串)来形成 funclet 名称。
生成的 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 编译器中发生。