Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan bersiri dan penyahserikatan kelas templat dan fungsi templat?
Pensirian dan penyahserikatan kelas templat dan fungsi templat boleh dicapai dalam pelbagai cara, termasuk menggunakan arkib binari, siri sendiri, penunjuk fungsi dan objek fungsi. Gunakan pengarkiban binari untuk menulis/membaca kelas templat terus ke fail, dan bersiri sendiri untuk menentukan kaedah bersiri/deserialisasi tersuai. Untuk fungsi templat, ia boleh disiri/diserialisasi menggunakan penunjuk fungsi atau objek fungsi.
Dalam C++, kelas templat dan fungsi templat digunakan secara meluas dalam pengaturcaraan generik. Keupayaan untuk mensiri dan menyahsiri contoh templat ini adalah penting jika ia perlu dihantar atau diteruskan ke seluruh rangkaian atau storan. Artikel ini memperkenalkan beberapa cara untuk melaksanakan bersiri dan penyahserikatan kelas templat dan fungsi templat.
// 写入归档 std::ofstream ofs("template_class.bin"); boost::archive::binary_oarchive oa(ofs); oa << my_template_class<int, std::string>; // 读取归档 std::ifstream ifs("template_class.bin"); boost::archive::binary_iarchive ia(ifs); std::pair<int, std::string> my_deserialized_class; ia >> my_deserialized_class;
// 定义一个序列化方法 template <typename T1, typename T2> void serialize(const my_template_class<T1, T2>& obj, std::ostream& out) { out.write((char*)&obj.first, sizeof(T1)); out.write((char*)&obj.second, sizeof(T2)); } // 定义一个反序列化方法 template <typename T1, typename T2> void deserialize(my_template_class<T1, T2>& obj, std::istream& in) { in.read((char*)&obj.first, sizeof(T1)); in.read((char*)&obj.second, sizeof(T2)); }
kelas templat:std::pair
// 定义一个模板函数 template <typename T> T square(T x) { return x * x; } // 定义一个序列化方法 void* serialize_function(void* function) { return function; } // 定义一个反序列化方法 void* deserialize_function(void* function) { return function; }
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan bersiri dan penyahserikatan kelas templat dan fungsi templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!