Паттерн Pimpl: выделить реализацию в куче, написать конструктор копирования, конструктор перемещения, деструктор, оператор копирующего присваивания и оператор перемещающего присваивания.
C++26:
std::indirect<Impl> impl_;
P3019 добавляет в C++26
std::indirect и
std::polymorphic.
indirect<T> — значение, размещённое в куче, с автоматической семантикой копирования.
Pimpl без шаблонного кода.
polymorphic<T> — то же самое, но при копировании сохраняет производный тип. Виртуальная диспетчеризация с value semantics.
Для типов-обёрток больше не нужно вручную реализовывать Rule of Five.
@Cpportal
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram