Было несколько вопросов о SO о идиоме pimpl, но мне больше любопытно, как часто она используется на практике.
Я понимаю, что есть некоторые компромиссы между производительностью и инкапсуляцией, а также некоторые отладочные неприятности из-за дополнительного перенаправления.
С этим, это что-то, что должно быть принято на основе класса или все или ничего? Является ли это лучшим практическим или личным предпочтением?
Я понимаю, что несколько субъективно, поэтому позвольте мне перечислить мои главные приоритеты:
- Ясность кода
- Поддерживаемость кода
- Производительность
Я всегда предполагаю, что в какой-то момент мне нужно будет выставить мой код как библиотеку, чтобы это также было рассмотрено.
РЕДАКТИРОВАТЬ: Любые другие варианты выполнения одного и того же предложения были бы полезными.