#pragma once #include #include #include namespace hex { template struct always_false : std::false_type { }; template concept has_size = sizeof(T) == Size; template class ICloneable { public: virtual ~ICloneable() = default; [[nodiscard]] virtual std::unique_ptr clone() const = 0; }; }