Зависит от того, что вы подразумеваете под «управлением памятью».
Очевидно, что строгое определение означает «все время», поскольку автоматические переменные (выделяемые стеком) - это элемент памяти.Вы, вероятно, не предполагали этого.
С другой стороны, есть использование new
и delete
.Это должно никогда не произойти, но, вероятно, в любом случае происходит в "обычном" C ++.Это плохая практика, неаккуратная и легко решаемая с контейнерами.Можно буквально скопировать и вставить реализацию интеллектуального указателя откуда-нибудь и это можно сделать без предлога.
В середине, в идеале, все "управление" выполняется автоматически с контейнерами.Единственное управление, которое может потребоваться, - это нарушение циклических зависимостей или создание собственных контейнерных классов.
В моих собственных проектах я использую new
и delete
только когда создаю служебный класс, поэтому мне больше никогда не придется new
и delete
.После этого я использую new
только когда он попадает прямо в какой-то контейнер.