__func__ returns class 名称在调试中但不在发布中

__func__ returns class name in debug but not in release

我正在使用 12 年前用 Embarcadero C++ 编写的遗留软件,我注意到: 当您在 32 位的调试或发布配置中使用 __func____FUNC__ 时,它 returns ClassName::FunctionName 但是当在 64 位的调试或发布配置中构建时,它 returns只有 FunctionName.

这是预期的行为吗?我可以更改吗?

我也想 ClassName::FunctionName 在 64 位版本配置中。

我正在使用 Embarcadero® C++Builder 10.3 版本 26.0.36039.7899

到目前为止,我的 Google 技能让我失望了,在此先感谢。

您可以使用__PRETTY_FUNCTION__获得完整的函数签名。此宏未在 Embarcadero 文档中列出,因此它可能不适用于 Classic 编译器。

C++ Builder 10.3.3 中的输出如下:

int ClassName::FunctionName(int, int)

如果您需要删除 return 值和参数,只需解析字符串即可。