Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#ifndef GENERS_MAPIO_HH_
#define GENERS_MAPIO_HH_

#include <map>
#include "Alignment/Geners/interface/GenericIO.hh"

namespace gs {
    template <class Key, class T, class Compare, class Alloc>
    struct InsertContainerItem<std::map<Key,T,Compare,Alloc> >
    {
        typedef std::map<Key,T,Compare,Alloc> A;
        static inline void insert(A& obj, const typename A::value_type& item,
                                  const std::size_t /* itemNumber */)
        {obj.insert(item);}
    };

    template <class Key, class T, class Compare, class Alloc>
    struct InsertContainerItem<volatile std::map<Key,T,Compare,Alloc> >
    {
        typedef std::map<Key,T,Compare,Alloc> A;
        static inline void insert(A& obj, const typename A::value_type& item,
                                  const std::size_t /* itemNumber */)
        {obj.insert(item);}
    };

    template <class Key, class T, class Compare, class Alloc>
    struct InsertContainerItem<std::multimap<Key,T,Compare,Alloc> >
    {
        typedef std::multimap<Key,T,Compare,Alloc> A;
        static inline void insert(A& obj, const typename A::value_type& item,
                                  const std::size_t /* itemNumber */)
        {obj.insert(item);}
    };

    template <class Key, class T, class Compare, class Alloc>
    struct InsertContainerItem<volatile std::multimap<Key,T,Compare,Alloc> >
    {
        typedef std::multimap<Key,T,Compare,Alloc> A;
        static inline void insert(A& obj, const typename A::value_type& item,
                                  const std::size_t /* itemNumber */)
        {obj.insert(item);}
    };
}

gs_specialize_template_id_TTTT(std::map, 0, 3)
gs_specialize_template_id_TTTT(std::multimap, 0, 3)

#endif // GENERS_MAPIO_HH_