C++相談室 part151at TECHC++相談室 part151 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト995:デフォルトの名無しさん 20/07/11 05:56:37.58 ckcY8r2v.net やっぱ>>934とか簡潔に要点が押さえてあるとオモタ、 GetHoge()が呼ぶたびに毎度新しく作ったvectorを返すのならディープコピーを返したらええ ディープコピーは生成元と所有権で揉めることがありえないからふつくしい 最適化によって実際にはreturn時にvectorの要素がコピーのかわりにmoveされるかもわからんがふつくしさは損なわれない (さらにいうと、GetHoge()がインライン関数なら最適化でそもそもvector自体のコピーも移動も起きない公算がおおきい >>919-920な疑問に関しては、 std::vector<T> v1 = GetHoge(); // std::vector<T>のディープコピーを返すバージョンのGetHoge() std::shared_ptr<std::vector<T> > ptr(new std::vector<T>(v1)); // (*1) で良いジャマイカ、 非バカが見れば(最適化有効化時は)実際には*1において、v1の要素が*(ptr.get())にコピーではなくmoveされる公算が大きいということがワカル しかしバカが見ても動作は明確でなんの危険も無い ptrが一時オブジェクトであっても問題が無い それでいいジャマイカ、にんげんだもの 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch