11

Die lokale vordefinierte C++ 11 -Variable einer Funktion kompiliert nicht in Visual Studio 2012 Professional (mit Update 1 installiert) mit dem standardmäßig integrierten Visual Studio 2012 (v110) Compiler oder der November 2012 CTP (v120_CTP_Nov2012) Compiler. Der Redakteur beschwert sich jedoch nicht mit roter Unterstreichung unter __func__. __func__ soll den Namen seines enthalten Funktion, in diesem Fall foo, aber dies weder kompiliert noch machen den Editor geben beschweren:__func__ C++ Die lokale vordefinierte Variable der Funktion 11 wird nicht kompiliert

#include <iostream> 
using namespace std; 

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

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

Es gibt dem Compiler-Fehler:

error C2065: '__func__' : undeclared identifier 

Bin ich fehlt etwas in meinem Code oder wird dies in einem zukünftigen Update funktionieren?

+1

[hier] (http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx?PageIndex=11) Es sagt, dass die Unterstützung "teilweise" ist. Nicht sicher, was damit gemeint ist. –

+7

"Der Redakteur beschwert sich jedoch nicht mit roter Unterstreichung unter" __func__ "." - * Verlass dich nie auf rote Schnörkel, um dir zu sagen, ob dein Code kompiliert wird oder nicht. IntelliSense und das eigentliche Compiler-Frontend werden von verschiedenen Personen entwickelt. Im Zweifelsfall ist der Compiler korrekt, da dies Ihre Binärdateien erzeugt. – Xeo

Antwort

-3

Kompilieren Sie das Programm mit C++ 11-Standards als __func__ C++ 11 Merkmal.

So kompilieren Sie es mögen:

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

Das OP verwendet nicht GCC. MSVC unterstützt keine Befehlszeilenoption "-std = C++ 11". Bitte nehmen Sie sich etwas mehr Zeit, um die Frage zu lesen, bevor Sie antworten. Dies könnte eine gute Antwort auf eine andere Frage gewesen sein, nur nicht auf diese Frage. – hvd