私が見ることができるように、一般的なルールは、関数から 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&&;