3

私が見ることができるように、一般的なルールは、関数から r 値参照をまったく返さないことです (まれな特殊なケースを除く)。しかし、クラス メソッドはどうでしょうか。

std::optional<T>::operator*()C++ 標準ライブラリには、クラスの右辺値参照修飾メソッド (およびクラスstd::optional<T>::value()のメソッド) から右辺値参照を返す例がありますstd::optional<T>。C++17 標準のセクション23.6.3 Class template optional [optional.optional]および23.6.3.5 Observers [optional.observe]を参照してください。

// 23.6.3.5, observers

constexpr T&& operator*() &&;
constexpr const T&& operator*() const&&;
constexpr T&& value() &&;
constexpr const T&& value() const&&;
4

1 に答える 1