[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
28: デフォルトの名無しさん (ワッチョイ 454e-0SSA) [] 2023/11/05(日) 13:06:56.97 ID:Qkn7cpbH0(1/4) AAS
>>24aに戻り値などの一時オブジェクトbをコピーすると通常は
aでメモリを確保
bからメモリコピー
bのデストラクタでメモリを破棄
という動作になるけど、moveの場合
aにbでメモリをポインタで持ってくる
bのインスタンスでは破棄したことにする
とすれば無駄なメモリ確保とコピーが発生せず効率が良い
30: デフォルトの名無しさん (ワッチョイ 454e-0SSA) [] 2023/11/05(日) 13:42:20.39 ID:Qkn7cpbH0(2/4) AAS
で、このmove動作を定義するために、
一時オブジェクト(右辺値)に対する参照動作を関数定義できるようになっている
32: デフォルトの名無しさん (ワッチョイ 454e-0SSA) [] 2023/11/05(日) 14:18:09.07 ID:Qkn7cpbH0(3/4) AAS
言っている意味がよく分からないが、純粋なポインタにはムーブという概念はないよ
ムーブを定義できるのはクラスに対してだけ
他の人も言っているようにムーブといっても実体は単なる関数呼び出しなので、その中でプログラマが自分の責任で必要なコードを書くことになる
34: デフォルトの名無しさん (ワッチョイ 454e-0SSA) [] 2023/11/05(日) 15:15:28.75 ID:Qkn7cpbH0(4/4) AAS
ただ、右辺値参照を使うと、通常の参照や代入と使い分けるためにconstやnoexceptを厳密に指定しないといけなくなりがちだから、
その辺の総合的な理解が必要になってくるのは注意点だね
constは一度付け始めるとライブラリ全部に伝染するからな・・・それを嫌って使わない派も結構いる(いた)よね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s