犬も猫も空想も扱っておりません。(旧・エト記)この広告は、90日以上更新していないブログに表示しています。いじって,メモリ管理から開放される気楽さを知ってしまった。実装を理解しただけ,ということになる。オブジェクトを作る設計は避けたかったので,その辺り,いくつか気になる部分を修正した意外は,概ねオリジナルのまま利用することにした。ガーベージコレクタの最適化の話は,それだけで分厚い本になっているくらいなので,効率の良いものを片手間にチョイと実装,というのは,ハッキリ言って現実的ではないと思う。動く程度のものであれば,リンク先のコードのように,数10行で実現できてしまう。千里の道も一歩から,である。gc_ptrを使うだけである。C++としての違和感がとても少ないのが嬉しい。そのまま移行できる...かも知れない。//_WIN32などとすれば。etolispでは今まで,自分が複雑なS式を書けないのを良いことに,メモリ管理はauto_ptrおよび参照カウンタ方式のshared_ptrで誤摩化していたけど,これでようやく,参照カウンタ方式の穴である,循環参照しているオブジェクトがリークする問題が解決する。ついでに実装もスッキリするんじゃないかな。記事でも触れられている通り,オブジェクトをポインタ値で管理しているので,多重継承を利用している場合は注意が必要。C++では,同一オブジェクトを指していても,基底クラスが複数ある場合は,基底クラスの型によって,ポインタ値が変わることがあるためだ*1。代入は,継承リストの一番最初にくるクラスを辿るような親子間でしかサポートされないだろう。C++はたぶんOK)。あ,でも,よく考えたらこれ,代入時にチェック可能だね。問題Archiveはてなブログをはじめよう!xoinuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。