トップページ > プログラム > 2014年11月23日 > tffEMZrq

書き込み順位&時間帯一覧

14 位/222 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000200200000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
KUSO KOTE ◆unko./w.Osri
テストしにくいコードをテストする方法教えて下さい
C++14/C++1z 20
【初心者歓迎】C/C++室 Ver.93【環境依存OK】

書き込みレス一覧

テストしにくいコードをテストする方法教えて下さい
656 :デフォルトの名無しさん[sage]:2014/11/23(日) 10:13:44.19 ID:tffEMZrq
テステス
C++14/C++1z 20
95 :KUSO KOTE ◆unko./w.Osri [sage]:2014/11/23(日) 10:17:38.46 ID:tffEMZrq
>>94
decltypeはその名の通り式の値に基づくのでなく
expression対象のもともとの宣言を流用するものゆえ。
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
841 :KUSO KOTE ◆unko./w.Osri [sage]:2014/11/23(日) 13:34:56.32 ID:tffEMZrq
>>840
やや違います。
ローカルの変数には特別なルールがあって移動になります。
Class g_unko;
Class class::makeInstance_A(){
  return g_unko;//コピー

  Class instance();
  return instance; //ムーヴ★12.8p32

  Class instance2();
  return std::move(instance2); //ムーヴ
}

ついでにさらに特別なルールがあって、二つ目と三つ目は
ムーブもコピーも省略されることがあります。(12.8p31)
【初心者歓迎】C/C++室 Ver.93【環境依存OK】
842 :KUSO KOTE ◆unko./w.Osri [sage]:2014/11/23(日) 13:53:15.49 ID:tffEMZrq
微妙に回答になってないな。
[関数<ローカル>]→(copy/move)→<テンポラリ>→(copy/move)→<rInstance>
の流れに於いて、
AもBも>>841の通り
[関数<ローカル>]→(move)→<チンポラリ>→(move)→<rInstance>
となります。
オブジェクトは別なのでアドレスは変わりますが
内部で持っているであろう大きな実データは所有権の移動になります。

補足として、オブジェクトの生成自体を省略する機能があり
AやBは
[関数<ローカル>]→(move)→<rInstance>
とすることが1998および2003年規格でゆるされており
Aに限ってはさらに
[関数<rInstanceに直接構築>]→(何もなし)→<rInstance>
と省略することが2011年規格で許されています。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。