#pragma once #include "base.hpp" class Derived : public Base { public: virtual ~Derived() {} private: friend class cereal::access; template void serialize(Archive & ar, std::uint32_t const) { ar(cereal::base_class(this)); } }; extern template DECLSPECIFIER void Derived::serialize ( cereal::XMLOutputArchive & ar, std::uint32_t const version ); extern template DECLSPECIFIER void Derived::serialize ( cereal::XMLInputArchive & ar, std::uint32_t const version ); CEREAL_REGISTER_TYPE(Derived)