• <small id='Yfka5'></small><noframes id='Yfka5'>

    1. <legend id='Yfka5'><style id='Yfka5'><dir id='Yfka5'><q id='Yfka5'></q></dir></style></legend>
        <bdo id='Yfka5'></bdo><ul id='Yfka5'></ul>
      <tfoot id='Yfka5'></tfoot>

      <i id='Yfka5'><tr id='Yfka5'><dt id='Yfka5'><q id='Yfka5'><span id='Yfka5'><b id='Yfka5'><form id='Yfka5'><ins id='Yfka5'></ins><ul id='Yfka5'></ul><sub id='Yfka5'></sub></form><legend id='Yfka5'></legend><bdo id='Yfka5'><pre id='Yfka5'><center id='Yfka5'></center></pre></bdo></b><th id='Yfka5'></th></span></q></dt></tr></i><div id='Yfka5'><tfoot id='Yfka5'></tfoot><dl id='Yfka5'><fieldset id='Yfka5'></fieldset></dl></div>

        增强使用结构中包含的 typedef 定义的本机类型的序列化

        boost serialization of native type defined with typedef contained within struct(增强使用结构中包含的 typedef 定义的本机类型的序列化)
        <legend id='BuiBF'><style id='BuiBF'><dir id='BuiBF'><q id='BuiBF'></q></dir></style></legend>
        <tfoot id='BuiBF'></tfoot>

        <small id='BuiBF'></small><noframes id='BuiBF'>

        • <bdo id='BuiBF'></bdo><ul id='BuiBF'></ul>

                  <tbody id='BuiBF'></tbody>
                  <i id='BuiBF'><tr id='BuiBF'><dt id='BuiBF'><q id='BuiBF'><span id='BuiBF'><b id='BuiBF'><form id='BuiBF'><ins id='BuiBF'></ins><ul id='BuiBF'></ul><sub id='BuiBF'></sub></form><legend id='BuiBF'></legend><bdo id='BuiBF'><pre id='BuiBF'><center id='BuiBF'></center></pre></bdo></b><th id='BuiBF'></th></span></q></dt></tr></i><div id='BuiBF'><tfoot id='BuiBF'></tfoot><dl id='BuiBF'><fieldset id='BuiBF'></fieldset></dl></div>

                  本文介绍了增强使用结构中包含的 typedef 定义的本机类型的序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一个包含各种类型和枚举的 MyFile.hpp 头文件.我如何对给定的示例代码进行序列化/反序列化.

                  I have a MyFile.hpp header file which contains various types and enums. How do i do serialization/ desrialization of given example code.

                  //MyFile.hpp

                  //MyFile.hpp

                  namespace A { 
                     namespace B {
                  
                        typedef std::string MyString;
                        typedef std::map<std::string,std::string> my_type;
                        typedef bool result;
                  
                        struct MyTimer
                        {
                           int time;
                  
                         private :
                           friend class boost::serialization::access;
                           template<class Archive>
                           void serialize(Archive &ar, const unsigned int version)
                           {
                              ar & time;
                           }
                        };
                  
                        enum MODE
                        {
                            Sleep=1,
                            HybridSleep,
                            Hybernate
                        }
                  
                     }
                  }
                  

                  我需要在对应的 MyFile.cpp 中实现,但不知道我该怎么做.

                  I need to do implementation in corresponding MyFile.cpp but don't know how do i go ahead.

                  谢谢,

                  推荐答案

                  地图、字符串等可以通过包含相关标题来序列化:

                  Maps, strings etc. can just be serialized by including the relevant header:

                  #include <boost/serialization/map.hpp>
                  #include <boost/serialization/string.hpp>
                  

                  枚举 算作原始类型:

                  当且仅当以下条件之一为真时,类型 T 是可序列化的:

                  A type T is Serializable if and only if one of the following is true:

                  • 它是一种原始类型.

                  • it is a primitive type.

                  原始类型是指 C++ 内置类型,仅是 C++ 内置类型.算术(包括字符)、bool、enum 是原始类型.在下面的序列化特征中,我们为不同的目的以不同的方式定义了一个原始"实现级别.这可能是混淆的根源.

                  By primitive type we mean a C++ built-in type and ONLY a C++ built-in type. Arithmetic (including characters), bool, enum are primitive types. Below in serialization traits, we define a "primitive" implementation level in a different way for a different purpose. This can be a source of confusion.

                  • 一个类成员函数序列化
                  • 一个全局函数序列化

                  对于更棘手的情况,有 BOOST_STRONG_TYPEDEF(参见 文档序列化包装器")

                  For more tricky cases there is BOOST_STRONG_TYPEDEF (see documentation "Serialization Wrappers")

                  这篇关于增强使用结构中包含的 typedef 定义的本机类型的序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How to limit the number of running instances in C++(C++中如何限制运行实例的数量)
                  Using boost::asio::async_read with stdin?(将 boost::asio::async_read 与 stdin 一起使用?)
                  How to find out what dependencies (i.e other Boost libraries) a particular Boost library requires?(如何找出特定 Boost 库需要哪些依赖项(即其他 Boost 库)?)
                  What#39;s the purpose of a leading quot;::quot; in a C++ method call(引导“::的目的是什么?在 C++ 方法调用中)
                  Boost Spirit x3: parse into structs(Boost Spirit x3:解析为结构体)
                  How boost auto-linking makes choice?(boost自动链接如何做出选择?)
                      <bdo id='LAjzS'></bdo><ul id='LAjzS'></ul>
                    • <legend id='LAjzS'><style id='LAjzS'><dir id='LAjzS'><q id='LAjzS'></q></dir></style></legend>
                      <tfoot id='LAjzS'></tfoot>
                      • <i id='LAjzS'><tr id='LAjzS'><dt id='LAjzS'><q id='LAjzS'><span id='LAjzS'><b id='LAjzS'><form id='LAjzS'><ins id='LAjzS'></ins><ul id='LAjzS'></ul><sub id='LAjzS'></sub></form><legend id='LAjzS'></legend><bdo id='LAjzS'><pre id='LAjzS'><center id='LAjzS'></center></pre></bdo></b><th id='LAjzS'></th></span></q></dt></tr></i><div id='LAjzS'><tfoot id='LAjzS'></tfoot><dl id='LAjzS'><fieldset id='LAjzS'></fieldset></dl></div>

                          1. <small id='LAjzS'></small><noframes id='LAjzS'>

                              <tbody id='LAjzS'></tbody>