Где pimpl используется в приложениях / библиотеках C++? какие-нибудь примеры?

Идиома pimpl позволяет уменьшить зависимости компиляции в проектах и ​​одновременно иметь бинарную совместимость.

Другими словами, вы можете изменить частную реализацию класса без необходимости перекомпиляции клиентского кода.

Где я могу найти примеры такого подхода? Знаете ли вы какие-либо библиотеки с открытым исходным кодом или приложения, которые его используют?

Я знаю о QT и Poco:

1 ответ

Где я могу найти примеры такого подхода? Знаете ли вы какие-либо библиотеки с открытым исходным кодом или приложения, которые его используют?

Qt. Пример конкретного модуля: QGraphicsItem.cpp, заполненный d_ptr, Интерфейс частной части. Все это касается как государственных, так и частных модулей.

Частная реализация имеет большой смысл в случае переноса всей библиотеки / фреймворка на другую платформу. Вы просто помещаете различные файлы для реализации, сохраняя открытый интерфейс как есть. И реализация доступна через d_ptr->,

Для любопытных: не-Qt Pimpl C++ 11 пример.

Другие вопросы по тегам