Boost::Serialize がマップ、ベクター、リストなどの STL コンテナーでどのように機能するかを知る必要があります。
具体的には、実際のすべてのコンテナ データ自体の直前に、コンテナ全体のサイズを保存しますか?
STL コンテナーの大きさを知るために、そのサイズを読み取ることはできますか?
私は、Visual Studio 2010 で Win7、64 ビットを使用しています。
ありがとう。
Boost::Serialize がマップ、ベクター、リストなどの STL コンテナーでどのように機能するかを知る必要があります。
具体的には、実際のすべてのコンテナ データ自体の直前に、コンテナ全体のサイズを保存しますか?
STL コンテナーの大きさを知るために、そのサイズを読み取ることはできますか?
私は、Visual Studio 2010 で Win7、64 ビットを使用しています。
ありがとう。
ブーストシリアル化のソースコードは次のとおりです。httpstd::vector
: //www.boost.org/doc/libs/1_38_0/boost/serialization/vector.hpp
std::set
s:http ://www.boost.org/doc/libs/1_38_0/boost/serialization/set.hpp
std::list
s:http ://www.boost.org/doc/libs/1_38_0/boost/serialization/list.hpp
std::vector
それがすることはかなり明らかです。http://www.boost.org/doc/libs/1_38_0/boost/serialization/collections_load_imp.hpp実装ヘッダーファイルを見ると、次のように表示されます。
collection_size_type count;
//...
ar >> BOOST_SERIALIZATION_NVP(count);
load_collection
関数内。std::list
とシリアライザーの両方std::set
がこれを直接呼び出します。