2012-04-07 8 views
5

Ho visto GoingNative2012 di recente, ovviamente, C++ 11.Cos'è l'operatore "" che ho visto in GoingNative2012

Nella sezione Bjarne Stroustrup, ho scoperto che esisteva un'interessante funzione dell'operatore, che era un belows.

constexpr Value<Second> operator""s(long double d) 
{ 
    return Value<Second>(d); 
} 

Beh, accanto constexpr che assomiglia a una nuova parola chiave in C++ 11,

Non ho mai conosciuto "" è sovraccarico in grado?

Questa è una delle nuove funzionalità in C++ anche se non sono riuscito a testarlo utilizzando VS 2010?

Grazie in anticipo.

+5

stavi senza ascoltare quello che diceva quando hai visto che? – Troubadour

+1

Questo esempio di codice non è corretto in due modi: 1) lo spazio bianco tra "" e il suffisso e 2) i suffissi definiti dall'utente devono iniziare con un trattino basso; i suffissi che non iniziano con un carattere di sottolineatura sono riservati per la futura standardizzazione. –

risposta

5

Si tratta di una nuova caratteristica del linguaggio C++11 di base: user defined litterals

+0

Grazie mille. –

+0

Fai attenzione, visto che quell'articolo è su Wikipedia, non è solo formalmente corretto. (Ad esempio, dove dice "I caratteri" 12.5 "sono un letterale che viene risolto dal compilatore come un tipo double con il valore di 12.5." ...) –

+0

Concordato che alcuni dettagli su Wikipedia potrebbero essere leggermente errati, ma è un riepilogo buono e di facile comprensione di ciò che lo standard C++ 11 (quasi un migliaio di pagine difficili da leggere) porta .... –

Problemi correlati