10 #ifndef META_UTIL_CLONABLE_H_
11 #define META_UTIL_CLONABLE_H_
27 template <
class Root,
class Base,
class Derived>
40 virtual std::unique_ptr<Root>
clone()
const
42 return make_unique<Derived>(
static_cast<const Derived&
>(*this));
51 template <
class Base,
class Derived>