Ticket #11829: mwe.cpp

File mwe.cpp, 748 bytes (added by boost@…, 7 years ago)

Minimum working example demonstrating bug. The relative order of the elements with the same key is destroyed when restoring the multimap.

Line 
1#include <sstream>
2#include <boost/serialization/map.hpp>
3#include <boost/archive/text_iarchive.hpp>
4#include <boost/archive/text_oarchive.hpp>
5
6std::ostream& operator<<(std::ostream& out, const std::multimap<int, double> &o)
7{
8 for (auto &i : o)
9 out << "(" << i.first << ", " << i.second << ")\n";
10
11 return out;
12}
13
14int main()
15{
16 std::multimap<int, double> o;
17 o.insert(std::make_pair(1, 1.1));
18 o.insert(std::make_pair(1, 1.2));
19 o.insert(std::make_pair(2, 2.1));
20 o.insert(std::make_pair(2, 2.2));
21
22 std::stringstream sstr;
23 boost::archive::text_oarchive(sstr) << o;
24 std::cout << o << std::endl;
25
26 std::cout << sstr.str() << std::endl;
27
28 std::multimap<int, double> i;
29 boost::archive::text_iarchive(sstr) >> i;
30 std::cout << i << std::endl;
31}