__PRETTY_FUNCTION__ in Visual C ++

Giocando con Visual C ++ di Visual Studio 2017 (15.5.6 per essere precisi) ho notato che __PRETTY_FUNCTION__ di GCC sembra funzionare! – in una certa misura almeno …

È apparso lungo i suggerimenti durante la digitazione: inserisci la descrizione dell'immagine qui

Inoltre ha mostrato il suo valore nel tooltip come previsto: inserisci la descrizione dell'immagine qui

Eppure la compilazione del codice utilizzando __PRETTY_FUNCTION__ genera un errore:

 error C2065: '__PRETTY_FUNCTION__': undeclared identifier 

Quindi, c’è un modo per farlo funzionare in Visual C ++? Alcuni includono forse? O alcune impostazioni di compilazione speciali? (Penso che sto usando quelli di default.) Perché dovrebbe funzionare in esempi mostrati, ma non in uso effettivo ?!

Nota che non sto cercando alternative Visual C ++ per __PRETTY_FUNCTION__ . Li conosco già. Sono solo sorpreso e curioso del comportamento qui.

Quindi, c’è un modo per farlo funzionare in Visual C ++? Alcuni includono forse? O alcune impostazioni di compilazione speciali? (Penso che sto usando quelli di default.) Perché dovrebbe funzionare in esempi mostrati, ma non in uso effettivo ?!

No.

Visual Studio utilizza il front-end C ++ di Edison Design Group per InteliSense, come illustrato nella ricostruzione Intellisense del blog del team di Visual C ++ e qui , e non il compilatore Microsoft C ++. Ciò significa che alcune delle funzionalità disponibili per Intellisense non sono disponibili in fase di compilazione.

La documentazione C ++ Front End di EDG menziona che supporta alcune delle pre-definizioni GCC come __PRETTY_FUNCTION__ a pagina 71 – “1.13 Macro predefinite” insieme a __FUNCSIG__ di Microsoft.

Puoi persino vedere la versione di EDG digitando __EDG_VERSION__ e __EDG_VERSION__ sopra con il mouse.