Ada*_*ura 6 c++ visual-studio visual-c++ visual-studio-2017
在使用Visual Studio 2017(准确地说是15.5.6)中的Visual C ++玩耍时,我注意到__PRETTY_FUNCTION__GCC似乎起作用了!-至少在某种程度上……
但是使用编译代码会__PRETTY_FUNCTION__导致错误:
error C2065: '__PRETTY_FUNCTION__': undeclared identifier
Run Code Online (Sandbox Code Playgroud)
因此,有什么方法可以使其在Visual C ++中运行?也许包括一些?还是一些特殊的编译设置?(我认为我使用的是默认值。)为什么在所示示例中有效,但在实际使用中无效?
请注意,我不是在寻找Visual C ++替代品__PRETTY_FUNCTION__。我已经知道了 我对这里的行为感到惊讶和好奇。
您可以通过将其放入一些通用标头中来很好地模拟它(例如,您的预编译标头,如果您正在使用它):
#if !defined(__PRETTY_FUNCTION__) && !defined(__GNUC__)
#define __PRETTY_FUNCTION__ __FUNCSIG__
#endif
Run Code Online (Sandbox Code Playgroud)
它的计算结果与PRETTY_FUNCTION并不完全相同,但它是具有参数类型的函数名称的人类可读表示。
因此,有什么方法可以使其在Visual C ++中运行?也许包括一些?还是一些特殊的编译设置?(我认为我使用的是默认值。)为什么在所示示例中有效,但在实际使用中无效?
没有。
Visual Studio将Edison Design Group C ++前端用于InteliSense,如Visual C ++团队博客的Rebuild Intellisense和此处(而非Microsoft C ++编译器)所述。这意味着Intellisense可用的某些功能在编译时不可用。
EDG的C ++前端文档提到它支持某些GCC __PRETTY_FUNCTION__预定义,如第71页“ 1.13预定义宏”以及Microsoft一样__FUNCSIG__。
您甚至可以通过键入__EDG_VERSION__并悬停在EDG上来查看其版本。
| 归档时间: |
|
| 查看次数: |
2644 次 |
| 最近记录: |