boost::optional<T&>の話 - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
マイページ
メニュー
設定
ログイン
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
311
支援物資
大喜利
放射能
放射脳
原発
iwj
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
IT・Web
> boost::optional<T&>の話
2011/02/15 01:32:55
IT・Web
optional
boost
cpp
+
boost::optional<T&>の話
コンストラクタで取る変数の受け取り方について、から始まって、
std::unique_ptr<T>&→T&→(T*)→boost::optional<T&>→boost::optional<T&>の改良版実装 etude::optional_ref<T>
というような流れで話は進んでます。
まとめのタイトルと説明文に半角の<>が使えないのが痛い。
by
rshhh
7 fav
1006 view
Fav
7
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
const std::unique_ptr& を引数に取るコンストラクタとか別に問題ないよね?std::shared_ptrにした方がいい?
返信する
RTする
ふぁぼる
rshhh
2011/02/14 22:50:37
T& にするべきじゃないですかね。 RT
@rshhh
: const std::unique_ptr& を引数に取るコンストラクタとか別に問題ないよね?std::shared_ptrにした方がいい?
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:52:31
無効参照を取り得るなら T* でもいいね。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:52:51
const std::unique_ptr<T>& って、所有権以上出来ないんだから生ポインタと何ら変わらない。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:53:37
s/以上/移譲/
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:53:48
だったら型の制約が遥かに緩い生ポインタなり、もっというなら参照を使うべき。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:54:05
生ポインタは資源を所有させない場合には普通に便利に使えるんだよにゃー。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:58:40
まぁ boost::optional<T&> が(生ポインタと同じ効率で)使えるなら、それに越したことはないけど。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 22:59:07
@SubaruG
語弊がありました。セットしてやりたい情報を他のオブジェクト経由でHogeのコンストラクタに渡してやりたい場合に、Hoge::Hoge(const std::unique_ptr& param) みたいに書いても問題ないよね、ってことが知りたかったのです。、
返信する
RTする
ふぁぼる
rshhh
2011/02/14 23:01:49
@rshhh
書くだけなら問題ないです。もちろん所有権移譲は一切できないですけどね。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:03:12
基本的に所有権ごにょごにょする必要性がないならstd::unique_ptrでいいんだよね? MP3のID3タグをいじるライブラリがClangだから、それが生成するオブジェクトをC++のスマポで管理したいんだけど。
返信する
RTする
ふぁぼる
rshhh
2011/02/14 23:03:41
@rshhh
誰かが所有権を管理してるオブジェクトを横から眺めたい動機だとしたら std::unique_ptr はよくないです。汎用性的な意味で。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:05:08
@rshhh
もし shared_ptr で管理してるオブジェクトを横から眺めたくなったらどうすればいいですかね。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:05:26
何かを参照したいときは素直に参照使えって話ですわ。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:06:39
const std::unique_ptr<T>& 型の引数を取る、ってのは、呼び出し元が std::unique_ptr<T, std::default_delete<T>> で資源を管理してることを要求する、ってこと。例えば資源管理方法が変わったらその時点で使えなくなる。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:08:25
勿論 std::shared_ptr<T> で管理してたらアウトだし、 default_delete 以外の unique_ptr でもアウト。そういう意図で使うなら別に構わないけど、資源管理方法を強制したい状況って、そうそう無いです。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:09:48
@SubaruG
それが気になったので、ちょっと調べましたー。std::shared_ptrには、std::unique_ptrを取るコンストラクタが用意されてるようなので、こういう、何が渡されるか定まらない状況ではそれを使うべきなんでしょうか。
返信する
RTする
ふぁぼる
rshhh
2011/02/14 23:52:28
@rshhh
余計なコストかかりますよー。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:53:24
@SubaruG
ですよねぇ・・・。となると、所有権の移譲が必要になる状況下でないなら、
http://twitter.com/#!/SubaruG/status/37150424444178435
これの解決策はどうなるんでしょうか。
返信する
RTする
ふぁぼる
rshhh
2011/02/14 23:56:11
@rshhh
参照使えばいいのです。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:56:43
@rshhh
何らかの理由で無効値が必要なら、生ポインタを使えばいい。全てのスマートポインタは参照なり生ポインタの取得を行えますからね。
返信する
RTする
ふぁぼる
SubaruG
2011/02/14 23:57:27
@SubaruG
あれw 最初のreplyで指摘して頂いていたことですよね。読み違えてました・・・。なるほどなるほど。
返信する
RTする
ふぁぼる
rshhh
2011/02/15 00:00:52
@SubaruG
なるほど。でも、生ポインタを取るようなコンストラクタを定義すると、RAIIのためのコンストラクタだと読み取られたりしませんか?そこら辺は、引数の変数名とか、文脈から読み取ってもらえばいいんでしょうか。
返信する
RTする
ふぁぼる
rshhh
2011/02/15 00:02:53
@rshhh
明示的に参照であることを表明したいなら、 boost::optional<T&> というのもあります。ただし今のところポインタのほうが効率的ですが。
返信する
RTする
ふぁぼる
SubaruG
2011/02/15 00:03:55
生ポインタを廃絶出来ればいい、ってのは、みんな思ってる。だから標準ライブラリに Boost.Optional を入れるべきだった。
返信する
RTする
ふぁぼる
SubaruG
2011/02/15 00:08:50
Content from Twitter
残りを読む(20)
ブログへ
iframe版
拡張版
張付けプレビュー
Fav
7
あわせて読みたい
OptionalかわいいよOptional(2)
OptionalかわいいよOptional
Boost.勉強会 名古屋 # 2 (2)
Boost.勉強会 名古屋 # 1 (1)
PMDViewerのライブラリ開発に関する個人的メモ
powered by Preferred Infrastructure
コメント
後の方追加
返信
rshhh
2011/02/15 01:41:53
0
重複削除
返信
rshhh
2011/02/15 02:09:59
0
コメントを入力してください。
Twitterにも投稿する
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
まとめを作成する
プロフィール
フォローする
まだ自己紹介が設定されていません。
rshhh
twitter
rss
アップデート
まとめ
5
19
C++0xでの標準ライブラリを使った文字コード変換
10
boost::optional<T&>の話
0
「みんなで Boost in 福井」
お気に入り
115
コメント
2
新着のまとめ
楽器が弾ける賃貸ツイート♪ 5月29日版
new
東京都府中市 給食食材検査の検出限界が200ベ..
new
クローズアップ現代「フィルム映画の灯を守りたい..
new
ピカブにぴったりのおんがくしゅう
new
ペア構成テスト技法とTDD
new
もっと見る
@togetter_jp
最近追加された商品
Logitec シガーチャージャー iPad/iPhone/iPod/スマートフォン対応 USB..
太陽観測双眼鏡 SAFARI 10X25FT
フロート150cmバナナ
変節の知識人たち (1979年)
AVENGERS ファインアートスタチュー ホークアイ (1/6スケール コールドキャスト塗装済..
オススメ
マイスター
トゥギャ通
毎日新聞スクープ"核燃サイクル「秘密会議」"に..
クラブに全く興味がない人と風営法について会話し..
発達障害児を育てる幸せ満タン親バカなツイート集
up
生活保護に関する、渡邊芳之(ynabe39)さ..
“北九州、瓦礫焼却による放射能拡散予想図”は「..
立憲主義を知らない自民党「憲法起草」委事務局長..
もっと見る
クローズアップ現代「フィルム映画の灯を守りたい..
new
茂木健一郎(@kenichiromogi)さん..
new
袁紹の用兵の才能と分かり易い『官渡の戦い』
new
タイバニ当落メールが遅い理由を考えてみた まとめ
new
「女川」ツイートまとめメモ 2012/05/3..
new
#最後にハートをつければ何を言ってもかわいい ..
new
もっと見る
第80回「日食写真と昭和格差」
号外「みんなの金環日食まとめ―画像から教養ま..
第79回「虚構新聞とJリーグ」
第78回「コンプガチャとIT系かあちゃん」
第77回「びろーんと自宅警備隊」
第76回「Appleとパンツクッキー」
もっと見る
コメント