Ich beobachte das Gespräch Modern Template Metaprogramming von Walter E. Brown. Bei 54:40 wird ein Code gegeben, wie untengeben Sie einen Wert ohne Deklaration des Rückgabetyps in der Vorlage zurück, ist das ein Tippfehler?
template<class T, T v>
struct integral_constant{
static constexpr T value = v;
constexpr operator T() const noexcept { return value; } // what does this mean?
constexpr T operator T() const noexcept { return value; }
};
ist meine Frage, was ist diese Linie bedeutet constexpr operator T() const noexcept { return value; }
, warum gibt es keinen Rückgabetyp, aber es ist immer noch die Rückkehr value
? Ist das ein Tippfehler?
Es ist eine Konvertierungsfunktion. http://en.cppreference.com/w/cpp/language/cast_operator – 0x499602D2
Die zweite Zeile ist eigentlich 'constexpr T operator()() const noexcept {Rückgabewert; } ', was ein Funktionsaufruf-Operator ist. –
Ja, Sie haben Recht. Ich habe die Rutsche übersehen. – Allanqunzi