Pimpl для инкапсуляции времени компиляции (современный C++)
эта pimpl современный метод C++, чтобы скрывать реализацией, свернуть соединение и разделять интерфейсы. Pimpl коротким «для указателя на реализацию». Можно быть уже знакомы с понятием только знать его различными именами, является брандмауэра котов или Чешира компилятора.
Зачем использовать pimpl?
Описание является pimpl может повысить жизненного цикла разработки программного обеспечения.
Минимизация зависимостей компиляции.
Разделение и реализации интерфейса.
Переносимость.
Заголовок Pimpl
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Эта pimpl избежать каскадов перестроения и хрупких макетов объекта. Он хорошо подходит для () является транзитивным популярных типов.
Реализация Pimpl
Определите класс impl в cpp-файле.
// my_class.cpp
class my_class::impl { // defined privately here
// ... all private data and functions: all of these
// can now change without recompiling callers ...
};
my_class::my_class(): pimpl( new impl )
{
// ... set impl values ...
}
Рекомендации
Возможно, добавление поддержки не функцию специализации обмена.