C++26 adds two new vocabulary types in , introduced by P3019R14 (Coe, Peacock, Parent). From the abstract: The class template indirect confers value-like semantics on a dynamically-allocated object. An indirect may hold an object of a class T. Copying the indirect will copy the object T. When an indirect is accessed through a const access path, constness will propagate to the owned object. The class template polymorphic confers value-like semantics on a dynamically-allocated object. A polymorphic may hold an object of a class publicly derived from T. Copying the polymorphic will copy the object of the derived type. When a…