D言語 Part8
■ このスレッドは過去ログ倉庫に格納されています
0137デフォルトの名無しさん
2006/01/16(月) 15:46:51removeRangeはaddRangeしたものを外す専用だから、あんまり使えない。
例えば class A { int n; void* p; } の A.n がポインタじゃないことの
判定を頑張るのは大変だからサボるのが保守的なGCで、このパターンが
避けられないのはどうしようもないと思う。けど、pointerを含む可能性が
ある型のnewとpointerを含まない型のnewを別に管理するGCになっていれば、
ubyte[] の中身を誤認識するパターンは保守的なGCでも回避できるはず。
(DならCと違って言語仕様でvoid*をintにキャストしたりするのも禁止されてるし)
巨大な配列をサーチする必要もなくなって高速化するしいいことづくめだと思うので
そういう風にgcを改造してWalterに送りつけたら採用してもらえるかも
■ このスレッドは過去ログ倉庫に格納されています