@@ -469,28 +469,6 @@ DataStream& operator >> ( DataStream& ds, std::array<T,N>& v ) {
469
469
return ds;
470
470
}
471
471
472
- template <typename DataStream, typename K, typename V>
473
- DataStream& operator <<( DataStream& ds, const boost::container::flat_map<K,V>& m ) {
474
- ds << unsigned_int ( m.size () );
475
- for ( const auto & i : m )
476
- ds << i.first << i.second ;
477
- return ds;
478
- }
479
- template <typename DataStream, typename K, typename V>
480
- DataStream& operator >>( DataStream& ds, boost::container::flat_map<K,V>& m ) {
481
- m.clear ();
482
- unsigned_int s; ds >> s;
483
-
484
- for ( uint32_t i = 0 ; i < s.value ; ++i ) {
485
- K k; V v;
486
- ds >> k >> v;
487
- m.emplace ( std::move (k), std::move (v) );
488
- }
489
- return ds;
490
- }
491
-
492
-
493
-
494
472
template <typename DataStream, typename T>
495
473
DataStream& operator << ( DataStream& ds, const vector<T>& v ) {
496
474
ds << unsigned_int ( v.size () );
@@ -509,24 +487,45 @@ DataStream& operator >> ( DataStream& ds, vector<T>& v ) {
509
487
return ds;
510
488
}
511
489
512
- template <typename DataStream, typename T, typename U>
513
- DataStream& operator << ( DataStream& ds, const std::map<T,U>& v ) {
514
- ds << unsigned_int ( v.size () );
515
- for ( const auto & i : v ) {
516
- ds << i.first ;
517
- ds << i.second ;
490
+ template <typename DataStream, typename K, typename V>
491
+ DataStream& operator << ( DataStream& ds, const std::map<K,V>& m ) {
492
+ ds << unsigned_int ( m.size () );
493
+ for ( const auto & i : m ) {
494
+ ds << i.first << i.second ;
518
495
}
519
496
return ds;
520
497
}
521
498
522
- template <typename DataStream, typename T, typename U>
523
- DataStream& operator >> ( DataStream& ds, std::map<T,U>& v ) {
524
- unsigned_int s;
525
- ds >> s;
526
- for (uint32_t i = 0 ; i < s; ++i) {
527
- T t;
528
- ds >> t;
529
- ds >> v[t];
499
+ template <typename DataStream, typename K, typename V>
500
+ DataStream& operator >> ( DataStream& ds, std::map<K,V>& m ) {
501
+ m.clear ();
502
+ unsigned_int s; ds >> s;
503
+
504
+ for (uint32_t i = 0 ; i < s.value ; ++i) {
505
+ K k; V v;
506
+ ds >> k >> v;
507
+ m.emplace ( std::move (k), std::move (v) );
508
+ }
509
+ return ds;
510
+ }
511
+
512
+ template <typename DataStream, typename K, typename V>
513
+ DataStream& operator <<( DataStream& ds, const boost::container::flat_map<K,V>& m ) {
514
+ ds << unsigned_int ( m.size () );
515
+ for ( const auto & i : m )
516
+ ds << i.first << i.second ;
517
+ return ds;
518
+ }
519
+
520
+ template <typename DataStream, typename K, typename V>
521
+ DataStream& operator >>( DataStream& ds, boost::container::flat_map<K,V>& m ) {
522
+ m.clear ();
523
+ unsigned_int s; ds >> s;
524
+
525
+ for ( uint32_t i = 0 ; i < s.value ; ++i ) {
526
+ K k; V v;
527
+ ds >> k >> v;
528
+ m.emplace ( std::move (k), std::move (v) );
530
529
}
531
530
return ds;
532
531
}
0 commit comments