IntelliJ 13 - Добавить Навигация Назад / Вперед на панель инструментов?

Stroustrup расширяет эту дискуссию в своем C ++ FAQ , дело в том, что использование GC необязательно, поставщики библиотек могут реализовать один или нет:

Сбор мусора (автоматическая утилизация незарегистрированных областей памяти) необязательна в C ++; то есть сборщик мусора не является обязательной частью реализации. Однако C ++ 11 дает определение того, что GC может сделать, если он используется, и ABI (Application Binary Interface), чтобы помочь контролировать его действия.

Правила указателей и времен жизни выражаются в терминах «безопасно полученного указателя» (3.7.4.3); грубо: «указатель на что-то, выделенное новым или на его под-объект». для обычных смертных: [...]

blockquote>

Функции в стандарте C ++, поддерживающие это («интерфейс», к которому относится Stroustrup):

Эти функции представлены в предложении N2670 :

Его цель - поддерживать как сборку мусора, так и средства обнаружения утечки на основе достижимости. Это делается путем предоставления неопределенного поведения программам, которые «скрывают указатель», например, путем добавления другого значения, а затем затем превращают его обратно в обычный указатель и разыгрывают его. В настоящее время такие программы могут давать неверные результаты с консервативными сборщиками мусора, поскольку объект, на который ссылается только такой «скрытый указатель», может быть предварительно собран. По той же причине обнаруженные утечки на основе достижимости могут ошибочно сообщать, что такие программы утечки памяти.

blockquote>

Либо ваша реализация поддерживает «строгую безопасность указателей», и в этом случае возможна реализация GC имеет «расслабленную безопасность указателей» (по умолчанию), и в этом случае это не так. Вы можете определить это, посмотрев результат std::get_pointer_safety() , если он доступен.

Я не знаю никакой реальной стандартной реализации C ++ GC, но по крайней мере стандарт подготовив почву для этого.

85
задан Engineer Dollery 25 September 2014 в 19:56
поделиться