編集可能

C++のGC談義

“GC入ったらもはやC++ではない派”から“なんでもありのC++だからこそGCも入れろ派”まで、某コピペのように誰か分類作ってください。 寝る直前にババッと関係する発言をかき集めただけで、ほぼ時刻順に並べただけです。読みやすくないのは勘弁ください。 「自分のつぶやきを載せないで欲しい」、あるいは逆に「自分のが載っていない」というかた、誰でも編集可ですので、どうぞ削除や追加をお願いいたします。
18
d金魚 @studiokingyo

C++はスタック上にクラスのインスタンスを作れないようにしてヒープ上にしかクラスのインスタンスを置けないように設計思想を変えるべき!そうすれば面倒なクラス内ギミックも不必要になるし、GCも効率的になるのに。

2012-04-09 23:54:43
普通のC++使い、銀天すばる @SubaruG

nice joke. RT @studiokingyo: C++はスタック上にクラスのインスタンスを作れないようにしてヒープ上にしかクラスのインスタンスを置けないように設計思想を変えるべき!そうすれば面倒なクラス内ギミックも不必要になるし、GCも効率的になるのに。

2012-04-09 23:56:52
エルザ=ライニ @ElzaReini

何かを禁止するのはC++の思想に反するんじゃないのかなー

2012-04-09 23:57:29
普通のC++使い、銀天すばる @SubaruG

僕は <chrono> みたいな設計が大好きなので,自由にオブジェクトを配置できないと困るっていうか C++ を使う理由なくなるっていうか

2012-04-09 23:58:28
普通のC++使い、銀天すばる @SubaruG

包含と継承が同じ効率で実現できる,そう, C++ ならね.

2012-04-09 23:58:46
AoiMoe a.k.aしお兄P @AoiMoe

良くも悪くもC++のクラスはCの構造体に毛を生やしたものであるところにその特徴があるのでなあ

2012-04-09 23:58:52
d金魚 @studiokingyo

@SubaruG ええっ?絡むの?でもでも、インスタンス毎にどこのアドレス空間に置くかを指定しておけばmark and sweepのGC効率はよくなる筈だよ。

2012-04-09 23:59:32
エルザ=ライニ @ElzaReini

オブジェクトをヒープに作ってGCに頼りたいならJavaやれとか思っちゃうけどまあ彼には彼なりのC++に期待したい理由があったんだろう。

2012-04-10 00:00:38
普通のC++使い、銀天すばる @SubaruG

あえてマジレスするなら, RAII が不完全になるので GC は要らないです,っていうのは,まぁ良く言われていることでありまして.

2012-04-10 00:02:26
d金魚 @studiokingyo

@SubaruG そうだったのかー。私はスタックは大切にしたい人なのでPODと再帰にしか使いたくないなーと思っていたのです。あとGCなんかにスタックの中を覗き見られて操作されたくないし…。

2012-04-10 00:03:09
普通のC++使い、銀天すばる @SubaruG

別にプログラムで使う資源っていうのはメモリ領域だけじゃないので, RAII はなんだかんだで便利だし,っていうか C++ 使ってて new を書きたくなるケースって本当に僅かっていうか

2012-04-10 00:03:40
普通のC++使い、銀天すばる @SubaruG

@studiokingyo いや C++ で GC って使わないし,使う必要無いですよね?

2012-04-10 00:04:17
d金魚 @studiokingyo

@SubaruG とあるクラスがメモリ破壊のバグを持っていて、スタック壊してとんでもないことになったらやだなーってのがかなり深刻な理由であったりします。なので、クラスは別メモリ領域に確保したいのです。

2012-04-10 00:06:01
普通のC++使い、銀天すばる @SubaruG

GC 使いたいなら C# 使いなさい. たぶんベストの選択肢ですよ.

2012-04-10 00:06:58
普通のC++使い、銀天すばる @SubaruG

@studiokingyo メモリ破壊が起きたら どのみち とんでもないことになるのでは?

2012-04-10 00:07:25
エルザ=ライニ @ElzaReini

newがあってdeleteがないのがきもちわるい

2012-04-10 00:08:07
普通のC++使い、銀天すばる @SubaruG

C++ に GC が要らないっていうのは,散々に言い尽くされた議論なので,本気で言ってるとしたら正直 勉強不足だなとしか. (だから nice joke と反応した

2012-04-10 00:10:28
普通のC++使い、銀天すばる @SubaruG

いや, flyweight パターンとか,あるいは immutable な string を効率よく扱おうと思ったら, GC は有って良いですよ,もちろん. そこは否定しない.

2012-04-10 00:11:10
d金魚 @studiokingyo

@SubaruG 私的にはコールスタックを破壊されるよりはマシだと思います。エラー忘却型だとした場合、不正な値があったらエラーが起こったであろうオブジェクト郡を廃棄してまだプロセスは実行できるでしょうし…、ですが、スタックの破壊はどうやって元の状態に戻せばいいか思いつきません。

2012-04-10 00:11:19
普通のC++使い、銀天すばる @SubaruG

C++ に GC があれば(例えば) string を constexpr に出来る,っていうのは,まぁ良く言われていることであって,別に GC が要らない訳じゃあない.

2012-04-10 00:12:02
SHOO @mono_shoo

GCあるC++に価値なんて無いな

2012-04-10 00:12:32
d金魚 @studiokingyo

@SubaruG native環境でGCを局所的に使いたいというニッチなニーズはやっぱりD的なアレをC++にもライブラリとして存在させようという狂気的な何かです。やっぱりC++は全能な言語でないと許せないって皆さん思っているように感じられますし。

2012-04-10 00:12:34
普通のC++使い、銀天すばる @SubaruG

@studiokingyo はぁ. ちなみにコールスタックを破壊したほうが即座にエラーになるという意味ではマシですね

2012-04-10 00:13:08
普通のC++使い、銀天すばる @SubaruG

@studiokingyo 言っている意味が良くわかりませんが,とりあえず C++ に GC が入ったら僕は C++ を使うのを止めます.

2012-04-10 00:14:37
残りを読む(108)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?