【发布时间】:2013-02-14 02:29:42
【问题描述】:
函数的__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
我的代码中是否遗漏了某些内容,或者这会在未来的更新中起作用吗?
【问题讨论】:
-
Here 它说支持是“部分的”。不知道这是什么意思。
-
"但是,编辑并没有抱怨
__func__下有任何红色波浪下划线。" -- 从不依靠红色曲线来告诉你你的代码是否可以编译。 IntelliSense 和实际的编译器前端是由不同的人开发的。如果有疑问,编译器是正确的,因为这就是创建二进制文件的原因。
标签: c++ visual-c++ c++11 visual-studio-2012 standards-compliance