smart_ptr refcount GC

最終的にすばる先生が作る流れになっている…
1
@meiamipapa

@SubaruG なるほど。ゴミはゴミでもその回収の方法はそれぞれですもんね。結局、真にGCを制御しようと思うと言語に手を加えるしかないと。

2010-12-08 23:14:07
普通のC++使い、銀天すばる @SubaruG

@meiamipapa C++では、所有に伴う義務の履行を、デストラクタという形で扱ってるので、管理するもんはメモリに限らないんですよね。

2010-12-08 23:14:15
普通のC++使い、銀天すばる @SubaruG

@meiamipapa C++においても、義務であるデストラクタの呼び出しさえきちんと履行できていれば(というかデストラクタが trivial な場合はそれすら必要ないですが)、メモリ自体はGCによる管理に任せてよくて、実際、 Lua とか扱う場合に僕はそうしてますね。

2010-12-08 23:16:04
@meiamipapa

おっと、また行き違いでしたw。すばる先生、お付き合いありがとうございます。ところで、C++0xにてGCについてある程度言及があったと記憶していますが、追っかけている人(実装者?)っているのかなー。

2010-12-08 23:17:17
普通のC++使い、銀天すばる @SubaruG

@meiamipapa 要するに、オブジェクトの生存期間中、オブジェクトの存在するバッファ領域が「生きて」さえいれば、どうでもいい、という話です。

2010-12-08 23:17:19
@meiamipapa

shared_prt/weak_ptrの意味論てか意義てか機能(でいいか)は、まさに素晴らしいと思っています。個人的には、「最近のC++はGCできるんだよー」 と言い放ちたいのですが、もちろん、いいですよね。

2010-12-08 23:24:09
普通のC++使い、銀天すばる @SubaruG

GC よりも上位の概念だと思ってます。 RT @meiamipapa: shared_prt/weak_ptrの意味論てか意義てか機能(でいいか)は、まさに素晴らしいと思っています。個人的には、「最近のC++はGCできるんだよー」 と言い放ちたいのですが、もちろん、いいですよね。

2010-12-08 23:25:11
@meiamipapa

@SubaruG まさにそうなんですよ。Javaで痛い目に遭ったくちです。じゃあ、C++は完全にコントロール可能なのか、ともね。僕は、組み込み・制御屋なんで、いろいろ考えちゃいます。

2010-12-08 23:33:25
普通のC++使い、銀天すばる @SubaruG

@meiamipapa 循環した参照が生じることが分かっていれば、その所有をひとつに纏め、相互参照は weak_ptr によって行うことで解決できたりしますが、あくまで一部分の解決でしかないですしね。 // でも型レベルでは shared_ptr のまま扱えるので便利だなぁかとか

2010-12-08 23:35:35
@meiamipapa

ふと、思い出しましたが、C++98ドラフトの頃、直前までauto_ptrに変更が入り、紆余曲折の末に今の仕様になりました。確か、提案当初のauto_ptrは参照カウントなものでしたが、あれが採用されていれば、、、、どうでもいいですねw

2010-12-08 23:41:22
@meiamipapa

@SubaruG 「外して!」のブロードキャストのコストですかね。侵入的な部分と。でも、機能的にそれが欲しいはいっぱいいるし、大抵の場合コストは無視できそう。では、開発お願いします ^^;

2010-12-08 23:50:10