Ich schaute auf die API für std::optional<T>
auf cppreference. Ich war neugierig, wie value_or
funktionieren würde. Suchen Sie es, so scheint es, gibt es zwei Überlastungen:Trailing const & or && on Funktionsdeklaration
template< class U >
constexpr T value_or(U&& value) const&;
template< class U >
T value_or(U&& value) &&;
Was sind die const&
und &&
Hinter die Funktionsdeklaration? Was ist der Unterschied zwischen der Deklaration einer Funktion als const
und der Deklaration als const&
?
Dies ist eigentlich eine C++ 11-Funktion, für die Compiler kürzlich Unterstützung erhalten haben. – chris
@chris Prost. Ich wusste von rvalue Verweisen auf * das, aber da es wahrscheinlich eine der letzten Funktionen ist, die implementiert werden, hatte ich mich überhaupt nicht damit beschäftigt, sie zu untersuchen. – Yuushi
@chris ehrlich ich hatte gewartet, um diese Frage zu beantworten Ich sah die Antwort in C++ Primer vor einer Weile, schade, ich habe nie realisiert, es war ein Betrogener :( – aaronman