C++相談室 part156at TECHC++相談室 part156 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト23:デフォルトの名無しさん 21/05/19 16:39:28.28 XxOLfc+T.net もう一個質問させてください 引数に参照をとる関数に一時オブジェクトを渡したいこともあるんですが、この場合は const参照か右辺値をとる関数としてオーバーロードするしかないですよね? 24:デフォルトの名無しさん 21/05/19 16:43:38.10 TD1RuTos.net >MoveConstructibleかつMoveAssignable こうなってるからヨシ! 25:デフォルトの名無しさん 21/05/19 19:24:14.37 8oBHesVz.net >>22 move後の変数は、読み取った場合の値はどうなってるか保証できないが、 値を書き込むことは正常に出来る事が保証されていると聞いた。 破棄することや、初期化することも問題ない。 26: 21/05/19 19:54:41.64 Y2/6iGxL.net >>1 お疲れ様です 27:デフォルトの名無しさん 21/05/19 20:51:32.06 aTtniYy+.net >>25 moveコンストラクタは呼ばれないの? 呼ばれるのなら保証するのは自分自身なのでは? 28:デフォルトの名無しさん 21/05/20 02:43:42.49 UJvm/t/I.net >>27 moveコンストラクタは、変数定義を TYPE x = y; の形式で書いた場合に y が右辺値の場合に呼び出されるだけ。 move代入は、 x = y; の形式で書いた場合に y が右辺値の場合に呼び出されるだけ。 後者の場合、xがmove後であるかどうかは関係ない。 変数xの中身をmove後のxへの書き込み、xの破棄、x.init()などとしての 再初期化が「保証される」というのは、保証されるようにSTLライブラリなどが 作られているという意味で、コンパイラが保証するというわけではない。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch