С++ 11 представил интерфейс для сборщиков мусора. Из того, что я вижу, он обеспечивает стандартизированный способ связи с GC (например, declare_no_pointers) и получать информацию о том, как обрабатываются замаскированные указатели (например, get_pointer_safety).
Однако в С++ 11 нет стандартизованного способа выделения выделенного блока памяти, который вам не нужно освобождать вручную. Есть случаи, когда это поможет, даже если деструкторы не вызываются. Одним из примеров является внедрение эффективных параллельных структур данных (как упоминалось Herb Sutter) без необходимости обработки сложных протоколов очистки.
До сих пор так хорошо. Мой вопрос (с точки зрения обычного разработчика, а не разработчика библиотеки GC):
Есть ли реальный пример, где вам помог новый интерфейс GC С++ 11?
По крайней мере, с моей точки зрения, мир не изменился. Если вам нужен GC, вам все равно придется найти нестандартную библиотеку, например Boehm GC, и узнать, как ее интегрировать и использовать. Новый стандартизованный интерфейс в этом отношении не поможет. Это также не решит проблемы переносимости.
(В долгосрочной перспективе общий интерфейс, определенный стандартом С++ 11, надеется, что он будет окупаться. Однако мой вопрос нацелен только на ближайшее будущее.)