Трябва да знам как Boost :: Serialize работи със STL контейнери - като карта, вектор и списък.
По-конкретно, тя спестява ли размера на целия контейнер точно преди всички сами данни за контейнера?
Мога ли да прочета този размер, за да знам колко голям е контейнерът за STL?
Аз съм на Win7, 64bit с Visual Studio 2010.
Благодаря.
Отговори:
4 за отговор № 1Ето изходния код за увеличаване на сериализацията std::vector
с: http://www.boost.org/doc/libs/1_38_0/boost/serialization/vector.hpp
std::set
с: http://www.boost.org/doc/libs/1_38_0/boost/serialization/set.hpp
std::list
с: 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
Сериализаторът го нарича директно.