C++26 избавляет полиморфные классы от ручного clone()

Composite objects and C++26 the std:polymorphic type

Новый тип std::polymorphic в C++26 позволяет владеть полиморфным объектом как обычным значением: копирование выполняется через стирание типа, зафиксированное при создании, поэтому иерархии больше не нужен виртуальный clone(). Владелец снова следует Rule of Zero, const распространяется на содержимое, а нулевое состояние невозможно. На примере журнала событий умного дома показано, как это упрощает код.

Копирование стирается по типу и фиксируется при создании, когда конкретный тип известен статически. Иерархии больше не нужна функция clone(), и производному классу нечего забыть переопределить.

Ещё за этот день

2026-10-21