//#include #include #include #include struct Archive {}; struct Test { template void serialize( Archive & ar ) { std::cout << "hey there" << std::endl; } template void save( Archive & ar ) const { std::cout << "saved by the bell" << std::endl; } template static Test * load_and_allocate( Archive & ar ) { } }; template void serialize( Archive & ar, Test & t ) { } //namespace cereal //{ // template <> // struct LoadAndAllocate // { // template // static Test * load_and_allocate( Archive & ar ) // { } // }; //} int main() { std::cout << std::boolalpha; //std::cout << cereal::traits::has_member_serialize::value << std::endl; Test t; Archive a; // Test Load and Allocate internal/external std::cout << "load_and_allocate" << std::endl; std::cout << cereal::traits::has_member_load_and_allocate::value << std::endl; std::cout << cereal::traits::has_non_member_load_and_allocate::value << std::endl; // serialize std::cout << "serialize" << std::endl; std::cout << cereal::traits::has_member_serialize::value << std::endl; std::cout << cereal::traits::has_non_member_serialize::value << std::endl; return 0; }