diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2010-11-17 17:57:52 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2010-11-17 17:57:52 +0200 |
commit | 88b5d11da136b8e827536b85e070e7e914e39506 (patch) | |
tree | 733dc1a3b2cd16ebc8ff1013b9da322f510a9f5f | |
parent | a157760b26ccbd16250e263ee16d12a483124227 (diff) |
Use complete list of template parameters for container specializations
-rw-r--r-- | odb/std-list-traits.hxx | 9 | ||||
-rw-r--r-- | odb/std-map-traits.hxx | 14 | ||||
-rw-r--r-- | odb/std-set-traits.hxx | 12 | ||||
-rw-r--r-- | odb/std-vector-traits.hxx | 9 |
4 files changed, 24 insertions, 20 deletions
diff --git a/odb/std-list-traits.hxx b/odb/std-list-traits.hxx index 2f6ec96..6b57178 100644 --- a/odb/std-list-traits.hxx +++ b/odb/std-list-traits.hxx @@ -14,15 +14,16 @@ namespace odb { - template <typename V> - class access::container_traits<std::list<V> > + template <typename V, typename A> + class access::container_traits<std::list<V, A> > { public: static container_kind const kind = ck_ordered; + typedef std::list<V, A> container_type; + typedef V value_type; - typedef typename std::list<V>::size_type index_type; - typedef std::list<V> container_type; + typedef typename container_type::size_type index_type; typedef ordered_functions<index_type, value_type> functions; diff --git a/odb/std-map-traits.hxx b/odb/std-map-traits.hxx index 4f71868..8abeef7 100644 --- a/odb/std-map-traits.hxx +++ b/odb/std-map-traits.hxx @@ -14,15 +14,16 @@ namespace odb { - template <typename K, typename V> - class access::container_traits<std::map<K, V> > + template <typename K, typename V, typename C, typename A> + class access::container_traits<std::map<K, V, C, A> > { public: static container_kind const kind = ck_map; + typedef std::map<K, V, C, A> container_type; + typedef K key_type; typedef V value_type; - typedef std::map<K, V> container_type; typedef typename container_type::value_type pair_type; typedef map_functions<key_type, value_type> functions; @@ -71,15 +72,16 @@ namespace odb // changes that. The current implementation in the generated code does // not guarantee this either. // - template <typename K, typename V> - class access::container_traits<std::multimap<K, V> > + template <typename K, typename V, typename C, typename A> + class access::container_traits<std::multimap<K, V, C, A> > { public: static container_kind const kind = ck_multimap; + typedef std::multimap<K, V, C, A> container_type; + typedef K key_type; typedef V value_type; - typedef std::multimap<K, V> container_type; typedef typename container_type::value_type pair_type; typedef map_functions<key_type, value_type> functions; diff --git a/odb/std-set-traits.hxx b/odb/std-set-traits.hxx index 0c8071a..87213f7 100644 --- a/odb/std-set-traits.hxx +++ b/odb/std-set-traits.hxx @@ -14,14 +14,14 @@ namespace odb { - template <typename V> - class access::container_traits<std::set<V> > + template <typename V, typename C, typename A> + class access::container_traits<std::set<V, C, A> > { public: static container_kind const kind = ck_set; + typedef std::set<V, C, A> container_type; typedef V value_type; - typedef std::set<V> container_type; typedef set_functions<value_type> functions; @@ -68,14 +68,14 @@ namespace odb // changes that. The current implementation in the generated code does // not guarantee this either. // - template <typename V> - class access::container_traits<std::multiset<V> > + template <typename V, typename C, typename A> + class access::container_traits<std::multiset<V, C, A> > { public: static container_kind const kind = ck_multiset; + typedef std::multiset<V, C, A> container_type; typedef V value_type; - typedef std::multiset<V> container_type; typedef set_functions<value_type> functions; diff --git a/odb/std-vector-traits.hxx b/odb/std-vector-traits.hxx index 6c439c8..fd82236 100644 --- a/odb/std-vector-traits.hxx +++ b/odb/std-vector-traits.hxx @@ -14,15 +14,16 @@ namespace odb { - template <typename V> - class access::container_traits<std::vector<V> > + template <typename V, typename A> + class access::container_traits<std::vector<V, A> > { public: static container_kind const kind = ck_ordered; + typedef std::vector<V, A> container_type; + typedef V value_type; - typedef typename std::vector<V>::size_type index_type; - typedef std::vector<V> container_type; + typedef typename container_type::size_type index_type; typedef ordered_functions<index_type, value_type> functions; |