[解決済み] unique_ptrは移動後にnullptrを格納することが保証されていますか?
2023-08-08 16:18:31
質問
質問
unique_ptr
を保存することが保証されています。
nullptr
を保存することを保証しますか?
std::unique_ptr<int> p1{new int{23}};
std::unique_ptr<int> p2{std::move(p1)};
assert(!p1); // is this always true?
どのように解決するのですか?
はい、次のように比較することができます。
nullptr
の後に
move
の後に記述すれば、等しい比較になることが保証されます。
から §20.8.1/4 [unique.ptr]より。
さらに
u
は、要求に応じて、所有権を別の一意なポインタu2
. このような転送が完了すると、以下の後件が成立する。
-u2.p
は転送前のu.p
,
-u.p
はnullptr
であり、かつ
...
(メンバー
p
は、先に述べたように -
は一意なポインタがオブジェクト
u
へのポインタを格納するもので、第二のオブジェクト
p
)
関連
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] ムーブセマンティクスとは何ですか?
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] nullptrとは一体何ですか?
-
[解決済み] コンストラクタや関数に unique_ptr 引数を渡すにはどうしたらいいですか?
-
[解決済み] 関数からunique_ptrを返す
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み] 移動専用型のベクターをリスト初期化できますか?
-
[解決済み] 基底クラスへの一意なptrを受け取る関数の引数としての派生クラスへの一意なptr
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】C++の余分な資格エラー
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む