11

La variabile predefinita locale di una funzione C++ 11 __func__ non viene compilata in Visual Studio 2012 Professional (con l'aggiornamento 1 installato) con il Visualizzatore predefinito predefinito Compilatore Studio 2012 (v110) o CTP di novembre 2012 (v120_CTP_Nov2012). Tuttavia, l'editor non si lamenta di alcun sottotitolo rosso sotto __func__. __func__ si suppone di dare il nome della sua funzione di contenimento, in questo caso foo, ma questo né compila né rendere l'editor si lamentano:__func__ La variabile predefinita locale della funzione C++ 11, non verrà compilata

#include <iostream> 
using namespace std; 

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

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

dà l'errore del compilatore:

error C2065: '__func__' : undeclared identifier 

Manco qualcosa nel mio codice o funzionerà in un aggiornamento futuro?

+1

[qui] (http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx?PageIndex=11) dice che il supporto è "parziale". Non sono sicuro di cosa si intenda per quello. –

+7

"Tuttavia, l'editor non si lamenta di eventuali sottotitoli rossi sotto" __func__ "." - * Mai * fare affidamento su scarabocchi rossi per dirti se il tuo codice verrà compilato o meno. IntelliSense e l'attuale front-end del compilatore sono sviluppati da persone diverse. In caso di dubbio, il compilatore è corretto, perché è questo che crea i tuoi binari. – Xeo

risposta

-3

compilare il programma utilizzando standard C++ 11 come __func__ è C++ 11 caratteristica.

Quindi, compilarlo come:

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

L'OP non sta utilizzando GCC. MSVC non supporta alcuna opzione della riga di comando '-std = C++ 11'. Per favore dedica un po 'più di tempo a leggere la domanda prima di rispondere, questa potrebbe essere una buona risposta a una domanda diversa, non solo a questa domanda. – hvd

Problemi correlati