template< typename TImplementation >
class Cloneable
{
public:
std::unique_ptr<TImplementation> Clone() const;
// ...
};
class MyClass : public BaseClass, public Cloneable<MyClass>
{
friend class Cloneable<MyClass>;
// ...
};
static_cast
лично я никакой не вижу. Приведение типа времени трансляции с полной проверкой на соответствие. Никаких проблем нет.std::variant
[?].float &weight;
PurifiedElement_Constants
.
Я думаю, он пока еще не в курсе реальности игровой индустрии.