2012-04-07 6 views
5

Ich habe vor kurzem GoingNative2012 über natürlich C++ 11 beobachtet.Was ist der Operator "", den ich in GoingNative2012 gesehen habe

In Bjarne Stroustrup Abschnitt fand ich heraus, es gab eine interessante Operatorfunktion, die wie folgt war.

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

Nun, neben constexpr, die 11, in C++ wie ein neues Schlüsselwort sieht

Ich habe noch nie bekannt "" Überlast-fähig ist?

Ist dies eine der neuen Funktionen in C++, obwohl ich es nicht mit VS 2010 testen konnte?

Vielen Dank im Voraus.

+5

Bist du nicht zu dem, was zu hören er sagen wurde, wenn Sie es gesehen? – Troubadour

+1

Dieses Codebeispiel ist auf zwei Arten falsch: 1) Leerzeichen zwischen dem Suffix "" und dem Suffix und 2) benutzerdefinierte Suffixe sollten mit einem Unterstrich beginnen; Suffixe, die nicht mit einem Unterstrich beginnen, sind für die zukünftige Standardisierung reserviert. –

Antwort

5

Es ist eine neue C++11 Kernsprache Funktion: user defined litterals

+0

Vielen Dank. –

+0

Pass aber auf, dass, wie der Artikel auf Wikipedia ist, es _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (Zum Beispiel, wo es heißt "Die Zeichen" 12.5 "sind ein Literal, das vom Compiler als ein Typ doppelt mit dem Wert von 12,5 aufgelöst wird.") –

+0

Vereinbart, dass einige Details auf Wikipedia leicht falsch sein können, aber Es ist eine gute und leicht verständliche Zusammenfassung dessen, was der C++ 11 Standard (fast tausend schwierige Seiten zum Lesen) bringt .... –