忍者ブログ

どっかのゆとりのチラシの裏

plasma_effectのメモ帳的ブログのようなsomething

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

反省会

この記事はアドベントカレンダーの反省会的記事である。まずは以下のコードを見て欲しい。

このコードはill-formedだ。gccでもVC++でもそうである。
これはpush_back内部でunique_ptrのコピーコンストラクタを呼ぼうとしているからだ。
エラーメッセージ的にそうとしか考えられない。では次のコードはどうか。

これはwell-formedだ。gccでもVC++でもそうである。何が異なるか。

早い話が後者はpush_backの引数が無名オブジェクト、つまり右辺値であるのに対し
前者は普通のオブジェクト、つまり左辺値であるからだ。
前者ではpush_back(const type&)が呼ばれ後者ではpush_back(type&&)が呼ばれる。

要は右辺値についての説明がなければunique_ptrとSTLの連携については語れないわけで。
それがなかったため記事の一部を削除する羽目になったのである。

KMC関係者各位や該当記事を読んでいただいた方には申し訳なく思っている。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

フリーエリア

最新CM

[02/12 kariya_mitsuru]
[10/14 どっかの京大生o]
[10/04 どっかのZ会生y]
[07/31 どっかのZ会生y]
[07/31 GNR]

プロフィール

HN:
plasma_effect
性別:
非公開

バーコード

ブログ内検索

最古記事

(06/08)
(06/18)
(06/21)

P R