Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ __func&x2B+;11功能';s局部预定义变量,won';不编译_C++_Visual C++_C++11_Visual Studio 2012_Standards Compliance - Fatal编程技术网

C++ __func&x2B+;11功能';s局部预定义变量,won';不编译

C++ __func&x2B+;11功能';s局部预定义变量,won';不编译,c++,visual-c++,c++11,visual-studio-2012,standards-compliance,C++,Visual C++,C++11,Visual Studio 2012,Standards Compliance,函数的\uuuu func\uuuuC++11局部预定义变量未在Visual Studio 2012 Professional(安装了更新1)中使用默认内置Visual Studio 2012(v110)编译器或2012年11月CTP(v120\u CTP\u Nov2012)编译器进行编译。然而,编辑并没有抱怨在\uuuu func\uuu下有任何红色扭曲的下划线\uu func\uu应该给出其包含函数的名称,在本例中为foo,但这既不会编译,也不会让编辑器抱怨: #include <i

函数的
\uuuu func\uuuu
C++11局部预定义变量未在Visual Studio 2012 Professional(安装了更新1)中使用默认内置Visual Studio 2012(v110)编译器或2012年11月CTP(v120\u CTP\u Nov2012)编译器进行编译。然而,编辑并没有抱怨在
\uuuu func\uuu
下有任何红色扭曲的下划线
\uu func\uu
应该给出其包含函数的名称,在本例中为
foo
,但这既不会编译,也不会让编辑器抱怨:

#include <iostream>
using namespace std;

void foo()
{
    cout << __func__ << endl;
    return;
}

int main()
{
    foo();
    return 0;
}

我的代码中是否遗漏了一些东西,或者在将来的更新中是否可以这样做?

MSVC的C99支持总体上相当差;您最好使用MSVC特有的
\uu函数\uu
宏。有关详细信息,请参见此问题:


更新(2015-06-22):Visual Studio 2015支持
\uuuuu func\uuu
,请参阅使用C++11标准编译程序,因为
\uuu func\uuu
是C++11功能

因此,将其编译为:

g++ -std=c++11 foo.cpp -o foo

它说支持是“部分的”。但是,编辑不会抱怨在
\uuu func\uuu
下有任何红色扭曲的下划线——永远不要依靠红色扭曲来告诉你的代码是否可以编译。IntelliSense和实际的编译器前端是由不同的人开发的。如果有疑问,编译器是正确的,因为这就是创建二进制文件的原因。OP没有使用GCC。MSVC不支持任何
-std=c++11
命令行选项。在回答之前,请多花点时间阅读问题,这本可以是一个不同问题的好答案,但不是这个问题。
g++ -std=c++11 foo.cpp -o foo