Мне потребовалось много времени, чтобы понять, насколько важны и тонкие переменные, которые:
1) существуют в стеке
2) вызывают их деструкторы, когда они выходят из области видимости
есть.
Эти две вещи позволяют такие вещи, как:
A) RAII
B) refcounted GC
Интересно, что (1) и (2) недоступны на "более низких" языках, таких как C/Assembly; ни на "более высоких" языках, как Ruby/Python/Java (поскольку GC предотвращает предсказуемое уничтожение объектов).
Мне интересно - какие другие методы вы знаете об этом, очень специфичны для С++ из-за выбора языка.
Спасибо!
Изменить: Если ваш ответ "это работает на С++ и этом другом langauge", это тоже хорошо. То, что я хочу узнать, похоже на:
Выбирая не иметь определенных функций (например, GC), мы получаем другие возможности (например, RAII + предикативное разрушение объектов). В каких областях С++, выбирая НЕ иметь функции, которые есть у других "более высоких уровней" langauges, С++ удается получить шаблоны, которые не могут выразить эти языковые языки более высокого уровня.