В том числе
задачи, которые может решать PIMPL: 1. уменьшение время компиляции: меняем реализацию (состав членов данных) скрытого pimpl, не меняя публичный интерфейс класса 2. ABI: за счет использования указателя или буфера под реализацию не меняется sizeof класса враппера, что годно для модификаций бинарной версии библиотеки и не ломает ABI 3. безопасность: сокрытие декларации членов данных от посторонних - затрудняет анализ и взлом наиболее известные либы, где применяют PIMPL: Qt
Да в в кьюти pimple прям везде, иногда прямо убить хочется...
ты по другому бинарной совместимости ты просто не добьешься
А то она там есть, эта бинарная совместимость.... ( в Qt) Так-то всё ясно...
любое добавление члена данных в класс ломает ABI
Обсуждают сегодня