Реализация компактного сборщика мусора в C ++ 0x

Я ' m реализую компактный сборщик мусора для личного использования на C ++ 0x, и у меня есть вопрос. Очевидно, что механика сборщика зависит от движущихся объектов, и мне было интересно, как это реализовать в терминах типов интеллектуальных указателей, которые на него указывают. Я думал либо о указателе на указатель в самом типе указателя, либо о том, что сборщик поддерживает список указателей, указывающих на каждый объект, чтобы их можно было изменить, устраняя необходимость в двойном удалении ссылки при доступе указатель, но добавляя некоторые дополнительные накладные расходы во время сбора и дополнительные накладные расходы памяти. Как лучше всего пойти сюда?

Edit: Моя основная забота - это быстрое выделение и доступ. Меня не интересуют особо эффективные коллекции или другое обслуживание, потому что это не совсем то, для чего предназначен GC.

24
задан James McNellis 1 January 2011 в 18:55
поделиться