aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-11-17 17:57:52 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-11-17 17:57:52 +0200
commit88b5d11da136b8e827536b85e070e7e914e39506 (patch)
tree733dc1a3b2cd16ebc8ff1013b9da322f510a9f5f
parenta157760b26ccbd16250e263ee16d12a483124227 (diff)
Use complete list of template parameters for container specializations
-rw-r--r--odb/std-list-traits.hxx9
-rw-r--r--odb/std-map-traits.hxx14
-rw-r--r--odb/std-set-traits.hxx12
-rw-r--r--odb/std-vector-traits.hxx9
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;