遅レスすいません。
右辺値参照周りを自分でも見直してきたんですが、
最終的に「vecの要素」に所有権を押し付けるコードは↓で正しいのでしょうか?
void add(vector<int> &&x){
vec.push_back(std::move(x));
};
・std::forwardを使う場合は、型がテンプレートの場合(フォワーディング参照の場合)に使うのが一般的であって、
上では具体的な型(vector<int>)を指定しているので、forwardを使う場合に当てはまらない。
・vector<int> &&xとして引数を受け取っても(右辺値参照として引数を受け取っても)、
右辺値参照自体は左辺値になるので、
vec.push_back(x)としてしまうと、呼ばれるpush_backは push_back(const T&)であり、所有権が移譲されない。
なので、ここでもmoveする必要がある(vec.push_back(std::move(x))
この理解であってますか?
探検
C++相談室 part161
■ このスレッドは過去ログ倉庫に格納されています
14859
2022/06/06(月) 03:12:54.60ID:hkI7oR+t■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 【無職の男(31)】女子小学生に次々触る 下半身を露出した状態で 公然わいせつ、不同意わいせつ疑い 千葉県警 [nita★]
- 【実況】博衣こよりのえちえち朝活🧪
- VIPでパズドラ
- マジレス頼む。アトピー性皮膚炎なんだが世間的にはどんなイメージなん?
- 「農林水産業」で賞与が激増!コメや卵など食料品高騰で大儲け [481941988]
- 朝からハイエースでカップラーメン食べてるドカタ
- 冬季賞与報告スレ [577451214]
