はcppcon2015でスライドから撮影しますか:: unique_ptrを
私はcppreferenceにおける仕様で参照してください。
typename std::add_lvalue_reference<T>::type operator*() const;
質問:
- それは右辺値
unique_ptr
のためoperator*
を禁止し、唯一の左辺値unique_ptr
のための有効な間接参照を持っている意味をなすだろうか? - 有効なユースケースが残っていますが、右辺値
unique_ptr
は逆参照できますか?このよう
:
//Make sure it is an lvalue.
typename std::add_lvalue_reference<T>::type operator*() const &;
注:私は、構文や正当性を確認していない、私は*このため右辺値参照と経験がありません。
はなかった:これは、以下のユースケースが有効であり、かつ
operator*
が右辺値のために無効になっていた場合に可能ではないであろうように、unique_ptr
が関連unique_ptr
限り有効であるデリファレンスから取得したオブジェクトは、生きていることを意味します'f();の代わりに' * f(); 'を意味しますか? –btw。 'const&'は暗黙のオブジェクトがまだrvalueであることを許可します –
問題を避けるために 'auto non_dangling = f()'はどうでしょうか?それは本当に修正が必要なポインタですか? –