LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Может не очевидно, но основная претензия - дисбаланс между demo::demo и demo::~demo.

Тут, кстати, отдельный и открытый вопрос о том, сколько усилий нужно приложить, чтобы написать корректный код, который бы правильно удалял старый экземпляр и создавал бы новый экземпляр в области памяти старого. Особенно с учетом обеспечения exception safety.

Так что это, скорее, антипаттерн, который должен применяться в исключительных случаях. В частности, в ситуациях, когда demo – это trivially destructible. В этом случае разницей между количеством конструкторов и деструкторов можно пренебречь.

Исходная версия eao197, :

Может не очевидно, но основная претензия - дисбаланс между demo::demo и demo::~demo.

Тут, кстати, отдельный и открытый вопрос о том, сколько усилий нужно приложить, чтобы написать корректный код, который бы правильно удалял старый экземпляр и создавал бы новый экземпляр в области памяти старого. Особенно с учетом обеспечения exception safety.

Так что это, скорее, антипаттер, который должен применяться в исключительных случаях. В частности, в ситуациях, когда demo – это trivially destructible. В этом случае разницей между количеством конструкторов и деструкторов можно пренебречь.