Разделение интерфейса и реализации. Вам проще загуглить, думаю, статей полно
для сокрытия приватной реализации от внешних глаз.
и ради этого приходится в лишний раз разиминовывать указатель?
Это цена pimpl, которую приходится платить, все так
Добавлю еще один момент: если у тебя в разработке толпа джунов для которых фабрика слишком сложна. У меня была ситуация, когда это было главным в выборе архитектуры проекта.
Есть идиома fast pimpl. Она ломает ABI (пункт 2 из сообщения Анатолия выше), но позволяет устранить потерю производительности, связанную с отдельным размещением реализации.
если использовать изначально фиксированный буфер, достаточный для хранения состояния PIMPL, то ABI может выжить, но, к сожу, здесь будет оверхед по памяти
Обсуждают сегодня