編譯器警告 (層級 1) C4788
'identifier' :標識符已截斷為 'number' 字元
編譯程式會限制函式名稱允許的最大長度。 當編譯程式為 EH/SEH 程式代碼產生 funclets 時,它會以某些文字前面加上函式名稱,例如 “__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 編譯程式中。