C++におけるメンバ関数のconst&, &, &&指定子
2023-11-27 03:39:15
質問
最近、私は
の API を読んでいました。
boost::optional
という行に行き当たりました。
T const& operator *() const& ;
T& operator *() & ;
T&& operator *() && ;
また、メンバ関数を const&, &, && (戻り値の型ではなく、セミコロンの直前の指定子について述べていることに注意してください) として定義する独自のプログラムを書きましたが、これらは問題なく動作するようです。
メンバ関数をconstと宣言する意味はわかるのですが、const&、&、&&と宣言する意味を説明できる方いらっしゃいますか?
どのように解決するのですか?
const&
は、このオーバーロードが const、non-const、lvalue オブジェクトにのみ使用されることを意味します。
const A a = A();
*a;
&
は、このオーバーロードがconstでないオブジェクトにのみ使用されることを意味します。
A a;
*a;
&&
は、このオーバーロードがrvalueオブジェクトにのみ使用されることを意味します。
*A();
C++11 標準のこの機能に関する詳細については、次の投稿を参照してください。 this" の rvalue 参照とは何ですか?
関連
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] std::string を const char* または char* に変換する方法
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み] constexpr` と `const` の相違点
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
-
[解決済み】「*this の rvalue 参照」とは何ですか?