作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
函数的 __func__
C++11 本地预定义变量无法在 Visual Studio 2012 Professional(安装了 Update 1)中使用默认的内置 Visual Studio 2012 (v110) 编译器进行编译,或者2012 年 11 月 CTP (v120_CTP_Nov2012) 编译器。但是,编辑器不会提示 __func__
下的任何红色波浪下划线。 __func__
应该给出其包含函数的名称,在本例中为 foo
,但这既不会编译也不会让编辑器提示:
#include <iostream>
using namespace std;
void foo()
{
cout << __func__ << endl;
return;
}
int main()
{
foo();
return 0;
}
它给出了编译器错误:
error C2065: '__func__' : undeclared identifier
我的代码中是否遗漏了某些内容,或者这会在未来的更新中起作用吗?
最佳答案
MSVC 对 C99 的支持总体上很差;您最好的选择可能是使用特定于 MSVC 的 __FUNCTION__
宏。有关详细信息,请参阅此问题:Cross-platform defining #define for macros __FUNCTION__ and __func__
更新 (2015-06-22):Visual Studio 2015 支持 __func__
,参见 blog post
关于c++ - __func__ C++11 函数的局部预定义变量,不会编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15126387/
我是一名优秀的程序员,十分优秀!