Ответ 1
GC не обязательно должен существовать по стандарту С++ 11, но он может быть в будущих версиях.
Он не будет применяться к вам - он будет там, только если вы его попросите. Он не будет собирать ваши обычные указатели, он не будет собирать текущие интеллектуальные указатели. Таким образом, он по-прежнему "не использует - не плати за него". Он будет работать только на указателях, которые вы явно задаете, поэтому ваш пример будет работать так же, как сейчас.
См. Sutters Mill: Сводка коллекции мусора и С++
Частота ссылок (# 1) часто является лучшей и ее С++ по умолчанию формы GC. Но есть причины, чтобы (а не вместо этого) хотеть ленивых mark-sweep (# 2) сборка мусора на С++ для обработки вещей ref с учетом возможных проблем, в том числе, когда потенциальные циклы неизбежно (в некоторых случаях некоторые объекты, естественно, могут быть разделены, но затем могут ссылаться друг на друга) и проблемы с блокировкой ABA.
Под "подсчетом ссылок" Саттер ссылается на std::shared_ptr
и другие подобные вещи.