Szukałem API dla std::optional<T>
na cppreference. Byłem ciekawy, jak zadziała value_or
. Patrząc tam, wydaje się, że są dwa przeciążenia:Ciągłe deklarowanie deklaracji funkcji i &&
template< class U >
constexpr T value_or(U&& value) const&;
template< class U >
T value_or(U&& value) &&;
Jakie są const&
i &&
spływu deklarację funkcji? Jaka jest różnica między deklarowaniem funkcji jako const
i deklarowaniem jej jako const&
?
To jest faktycznie funkcja C++ 11, do której kompilatory ostatnio uzyskały wsparcie. – chris
@chris Pozdrawiam. Wiedziałem o referencjach rvalue do * tego, ale ponieważ jest to prawdopodobnie jedna z ostatnich cech do zastosowania, nie przejmowałem się ich w ogóle. – Yuushi
@chris szczerze czekałem, aby odpowiedzieć na to pytanie Widziałem odpowiedź w C++ elementarz jakiś czas temu, szkoda, nigdy nie zdałem sobie sprawy, że to dupe :( – aaronman