الهدف هو إجراء تسلسل وإلغاء تسلسل فئة C مانجو الذي يحتوي على أعضاء من أنواع البيانات المخصصة.
يتضمن التنفيذ المقترح ما يلي الوظائف:
std::vector serialize(Mango const& Man);
Mango deserialize(std::span data);
void serialize_to_stream(std::ostream& os, Mango const& Man);
void deserialize(std::istream& is, Mango& Man);
التخصيصات مطلوبة لجميع الأنواع ذات الصلة (بما في ذلك ValType وFuntionMango وMangoType وMango):
// Define `do_generate` and `do_parse` functions
// for custom data types.
void serialize_to_stream(std::ostream& os, Mango const& Man) {
do_generate(std::ostreambuf_iterator(os), Man);
}
void deserialize(std::istream& is, Mango& Man) {
Man = {}; // clear it!
std::istreambuf_iterator f(is), l{};
if (!do_parse(f, l, Man))
throw std::runtime_error("deserialize");
}
اعتبارات قابلية النقل مثال حي:https://coliru.stacked-crooked.com/a/288829ec964a3ca9
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3