|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r78583 - in trunk: boost/bimap/container_adaptor libs/bimap/doc/reference libs/bimap/test
From: matias.capeletto_at_[hidden]
Date: 2012-05-24 11:16:22
Author: matias
Date: 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
New Revision: 78583
URL: http://svn.boost.org/trac/boost/changeset/78583
Log:
[bimap] Add key_type and mapped_type (leaving data_type for backward compatibility) typedefs to map views (Fix #6031)
Text files modified:
trunk/boost/bimap/container_adaptor/list_map_adaptor.hpp | 1
trunk/boost/bimap/container_adaptor/map_adaptor.hpp | 3 +
trunk/boost/bimap/container_adaptor/multimap_adaptor.hpp | 1
trunk/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp | 2
trunk/boost/bimap/container_adaptor/unordered_map_adaptor.hpp | 1
trunk/boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp | 1
trunk/boost/bimap/container_adaptor/vector_map_adaptor.hpp | 1
trunk/libs/bimap/doc/reference/list_of.qbk | 12 +++++++---
trunk/libs/bimap/doc/reference/set_of.qbk | 43 ++++++++++++++++++++-------------------
trunk/libs/bimap/doc/reference/unconstrained_set_of.qbk | 4 +-
trunk/libs/bimap/doc/reference/unordered_set_of.qbk | 41 ++++++++++++++++++++-----------------
trunk/libs/bimap/doc/reference/vector_of.qbk | 11 ++++++---
trunk/libs/bimap/test/test_bimap.hpp | 28 ++++++++++++++++++++++++++
trunk/libs/bimap/test/test_bimap_sequenced.cpp | 3 ++
14 files changed, 100 insertions(+), 52 deletions(-)
Modified: trunk/boost/bimap/container_adaptor/list_map_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/list_map_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/list_map_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -134,6 +134,7 @@
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::first_type key_type;
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
protected:
Modified: trunk/boost/bimap/container_adaptor/map_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/map_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/map_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -81,7 +81,8 @@
public:
- typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
// Access -----------------------------------------------------------------
Modified: trunk/boost/bimap/container_adaptor/multimap_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/multimap_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/multimap_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -81,6 +81,7 @@
public:
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
// Access -----------------------------------------------------------------
Modified: trunk/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/unordered_associative_container_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -144,7 +144,7 @@
typedef LocalIterator local_iterator;
typedef ConstLocalIterator const_local_iterator;
-
+
protected:
typedef BOOST_DEDUCED_TYPENAME mpl::if_<
Modified: trunk/boost/bimap/container_adaptor/unordered_map_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/unordered_map_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/unordered_map_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -82,6 +82,7 @@
public:
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
// Access -----------------------------------------------------------------
Modified: trunk/boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/unordered_multimap_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -81,6 +81,7 @@
public:
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
// Access -----------------------------------------------------------------
Modified: trunk/boost/bimap/container_adaptor/vector_map_adaptor.hpp
==============================================================================
--- trunk/boost/bimap/container_adaptor/vector_map_adaptor.hpp (original)
+++ trunk/boost/bimap/container_adaptor/vector_map_adaptor.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -77,6 +77,7 @@
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::first_type key_type;
typedef BOOST_DEDUCED_TYPENAME Iterator::value_type::second_type data_type;
+ typedef data_type mapped_type;
// Access -----------------------------------------------------------------
Modified: trunk/libs/bimap/doc/reference/list_of.qbk
==============================================================================
--- trunk/libs/bimap/doc/reference/list_of.qbk (original)
+++ trunk/libs/bimap/doc/reference/list_of.qbk 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -152,6 +152,10 @@
// Only in map views
// {
+ typedef ``['-unspecified-]`` key_type;
+ typedef ``['-unspecified-]`` mapped_type;
+ typedef ``['-unspecified-]`` mapped_type; // Equal to mapped_type
+
template< class CompatibleKey >
bool ``[link reference_list_of_replace_key_iterator_key replace_key]``(iterator position, const CompatibleKey & x);
@@ -228,14 +232,14 @@
In the left map view:
typedef Left key_type;
- typedef ... data_type;
+ typedef ... mapped_type;
typedef signature-compatible with std::pair< Left, ... > value_type;
In the right map view:
typedef ... key_type;
- typedef Left data_type;
+ typedef Left mapped_type;
typedef signature-compatible with std::pair< ... , Left > value_type;
@@ -459,7 +463,7 @@
bool replace_data(iterator position, const CompatibleData & x);
* [*Requires: ] `position` is a valid dereferenceable iterator of the set view.
-`CompatibleKey` can be assigned to `data_type`.
+`CompatibleKey` can be assigned to `mapped_type`.
* [*Effects:] Assigns the value `x` to `e.second`, where `e` is the element pointed
to by `position` into the `bimap` to which the set view belongs if replacing is allowed by
all other views of the `bimap`.
@@ -498,7 +502,7 @@
bool modify_data(iterator position, DataModifier mod);
* [*Requires: ] `DataModifier` is a model of __SGI_UNARY_FUNCTION__ accepting arguments of
-type: `data_type&`; `position` is a valid dereferenceable iterator of the view.
+type: `mapped_type&`; `position` is a valid dereferenceable iterator of the view.
* [*Effects:] Calls `mod(e.second)` where e is the element pointed to by position and
rearranges `*position` into all the views of the `bimap`.
If the rearrangement fails, the element is erased.
Modified: trunk/libs/bimap/doc/reference/set_of.qbk
==============================================================================
--- trunk/libs/bimap/doc/reference/set_of.qbk (original)
+++ trunk/libs/bimap/doc/reference/set_of.qbk 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -105,7 +105,7 @@
public:
typedef ``['-unspecified-]`` key_type;
- typedef ``['-unspecified-]`` value_type;
+ typedef ``['-unspecified-]`` value_type;
typedef ``['-unspecified-]`` key_compare;
typedef ``['-unspecified-]`` value_compare;
typedef ``['-unspecified-]`` allocator_type;
@@ -239,22 +239,23 @@
std::pair<const_iterator,const_iterator> ``[link reference_set_of_range_lower_upper range]``(
LowerBounder lower, UpperBounder upper) const;
- typedef ``['-unspecified-]`` data_type;
-
+ typedef ``['-unspecified-]`` mapped_type;
+ typedef ``['-unspecified-]`` data_type; // Equal to mapped_type
+
// Only in for `set_of` collection type
// {
template< class CompatibleKey >
- const data_type & ``[link reference_set_of_at_key_const at]``(const CompatibleKey & k) const;
+ const mapped_type & ``[link reference_set_of_at_key_const at]``(const CompatibleKey & k) const;
// Only if the other collection type is mutable
// {
template< class CompatibleKey >
- data_type & ``[link reference_set_of_operator_bracket_key operator\[\]]``(const CompatibleKey & k);
+ mapped_type & ``[link reference_set_of_operator_bracket_key operator\[\]]``(const CompatibleKey & k);
template< class CompatibleKey >
- data_type & ``[link reference_set_of_at_key at]``(const CompatibleKey & k);
+ mapped_type & ``[link reference_set_of_at_key at]``(const CompatibleKey & k);
// }
@@ -343,14 +344,14 @@
In the left map view:
typedef Left key_type;
- typedef ... data_type;
+ typedef ... mapped_type;
typedef signature-compatible with std::pair< const Left, ... > value_type;
In the right map view:
typedef ... key_type;
- typedef Left data_type;
+ typedef Left mapped_type;
typedef signature-compatible with std::pair< ... ,const Left > value_type;
@@ -541,7 +542,7 @@
bool replace_data(iterator position, const CompatibleData & x);
* [*Requires: ] `position` is a valid dereferenceable iterator of the set view.
-`CompatibleKey` can be assigned to `data_type`.
+`CompatibleKey` can be assigned to `mapped_type`.
* [*Effects:] Assigns the value `x` to `e.second`, where `e` is the element pointed
to by `position` into the `bimap` to which the set view belongs if,
* the map view is non-unique OR no other element with equivalent key exists
@@ -584,7 +585,7 @@
bool modify_data(iterator position, DataModifier mod);
* [*Requires: ] `DataModifier` is a model of __SGI_UNARY_FUNCTION__ accepting arguments of
-type: `data_type&`; `position` is a valid dereferenceable iterator of the view.
+type: `mapped_type&`; `position` is a valid dereferenceable iterator of the view.
* [*Effects:] Calls `mod(e.second)` where e is the element pointed to by position and
rearranges `*position` into all the views of the `bimap`.
If the rearrangement fails, the element is erased.
@@ -807,10 +808,10 @@
[#reference_set_of_at_key_const]
template< class CompatibleKey >
- const data_type & at(const CompatibleKey & k) const;
+ const mapped_type & at(const CompatibleKey & k) const;
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects:] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects:] Returns the `mapped_type` reference that is associated with `k`, or
throws `std::out_of_range` if such key does not exist.
* [*Complexity:] O(log(n)).
* [*Note:] Only provided when `set_of` is used.
@@ -823,10 +824,10 @@
[#reference_set_of_operator_bracket_key]
template< class CompatibleKey >
- data_type & operator[](const CompatibleKey & k);
+ mapped_type & operator[](const CompatibleKey & k);
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects: ] `return insert(value_type(k,data_type()))->second;`
+* [*Effects: ] `return insert(value_type(k,mapped_type()))->second;`
* [*Complexity:] O(log(n)).
* [*Note:] Only provided when `set_of` is used and the other collection
type is mutable.
@@ -834,10 +835,10 @@
[#reference_set_of_at_key]
template< class CompatibleKey >
- data_type & at(const CompatibleKey & k);
+ mapped_type & at(const CompatibleKey & k);
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects: ] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects: ] Returns the `mapped_type` reference that is associated with `k`, or
throws `std::out_of_range` if such key does not exist.
* [*Complexity:] O(log(n)).
* [*Note:] Only provided when `set_of` is used and the other collection
@@ -853,17 +854,17 @@
automatically assigns a default value to non-existent keys referred to
by `operator[]`.
- const data_type & operator[](const typename key_type & k) const;
+ const mapped_type & operator[](const typename key_type & k) const;
-* [*Effects:] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects:] Returns the `mapped_type` reference that is associated with `k`, or
throws `bimap::value_not_found` if such an element does not exist.
* [*Complexity:] O(log(n)).
- ``['-unspecified data_type proxy-]`` operator[](const typename key_type & k);
+ ``['-unspecified mapped_type proxy-]`` operator[](const typename key_type & k);
-* [*Effects:] Returns a proxy to a `data_type` associated with `k` and the
-bimap. The proxy behaves as a reference to the `data_type` object. If this
+* [*Effects:] Returns a proxy to a `mapped_type` associated with `k` and the
+bimap. The proxy behaves as a reference to the `mapped_type` object. If this
proxy is read and `k` was not in the bimap, the bimap::value_not_found is
thrown. If it is written then `bimap::duplicate_value` is thrown if the
assignment is not allowed by one of the other views of the `bimap`.
Modified: trunk/libs/bimap/doc/reference/unconstrained_set_of.qbk
==============================================================================
--- trunk/libs/bimap/doc/reference/unconstrained_set_of.qbk (original)
+++ trunk/libs/bimap/doc/reference/unconstrained_set_of.qbk 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -63,14 +63,14 @@
In the left map view:
typedef Left key_type;
- typedef ... data_type;
+ typedef ... mapped_type;
typedef signature-compatible with std::pair< Left, ... > value_type;
In the right map view:
typedef ... key_type;
- typedef Left data_type;
+ typedef Left mapped_type;
typedef signature-compatible with std::pair< ... , Left > value_type;
Modified: trunk/libs/bimap/doc/reference/unordered_set_of.qbk
==============================================================================
--- trunk/libs/bimap/doc/reference/unordered_set_of.qbk (original)
+++ trunk/libs/bimap/doc/reference/unordered_set_of.qbk 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -182,6 +182,9 @@
// Only in map views
// {
+ typedef ``['-unspecified-]`` mapped_type;
+ typedef ``['-unspecified-]`` data_type; // Equal to mapped_type
+
template< class CompatibleKey >
bool ``[link reference_unordered_set_of_replace_key_iterator_key replace_key]``(iterator position, const CompatibleKey & x);
@@ -246,22 +249,22 @@
// Only in maps views
// {
- typedef ``['-unspecified-]`` data_type;
+ typedef ``['-unspecified-]`` mapped_type;
// Only in for `unordered_set_of` collection type
// {
template<class CompatibleKey>
- const data_type & ``[link reference_unordered_set_of_at_key_const at]``(const CompatibleKey & k) const;
+ const mapped_type & ``[link reference_unordered_set_of_at_key_const at]``(const CompatibleKey & k) const;
// Only if the other collection type is mutable
// {
template<class CompatibleKey>
- data_type & ``[link reference_unordered_set_of_operator_bracket_key operator\[\]]``(const CompatibleKey & k);
+ mapped_type & ``[link reference_unordered_set_of_operator_bracket_key operator\[\]]``(const CompatibleKey & k);
template<class CompatibleKey>
- data_type & ``[link reference_unordered_set_of_at_key at]``(const CompatibleKey & k);
+ mapped_type & ``[link reference_unordered_set_of_at_key at]``(const CompatibleKey & k);
// }
@@ -296,14 +299,14 @@
In the left map view:
typedef Left key_type;
- typedef ... data_type;
+ typedef ... mapped_type;
typedef signature-compatible with std::pair< const Left, ... > value_type;
In the right map view:
typedef ... key_type;
- typedef Left data_type;
+ typedef Left mapped_type;
typedef signature-compatible with std::pair< ... ,const Left > value_type;
@@ -512,7 +515,7 @@
bool replace_data(iterator position, const CompatibleData & x);
* [*Requires: ] `position` is a valid dereferenceable iterator of the set view.
-`CompatibleKey` can be assigned to `data_type`.
+`CompatibleKey` can be assigned to `mapped_type`.
* [*Effects:] Assigns the value `x` to `e.second`, where `e` is the element pointed
to by `position` into the `bimap` to which the set view belongs if,
* the map view is non-unique OR no other element with equivalent key exists
@@ -555,7 +558,7 @@
bool modify_data(iterator position, DataModifier mod);
* [*Requires: ] `DataModifier` is a model of __SGI_UNARY_FUNCTION__ accepting arguments of
-type: `data_type&`; `position` is a valid dereferenceable iterator of the view.
+type: `mapped_type&`; `position` is a valid dereferenceable iterator of the view.
* [*Effects:] Calls `mod(e.second)` where e is the element pointed to by position and
rearranges `*position` into all the views of the `bimap`.
If the rearrangement fails, the element is erased.
@@ -682,10 +685,10 @@
[#reference_unordered_set_of_at_key_const]
template< class CompatibleKey >
- const data_type & at(const CompatibleKey & k) const;
+ const mapped_type & at(const CompatibleKey & k) const;
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects:] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects:] Returns the `mapped_type` reference that is associated with `k`, or
throws `std::out_of_range` if such key does not exist.
* [*Complexity:] Average case O(1) (constant), worst case O(n).
* [*Note:] Only provided when `unordered_set_of` is used.
@@ -699,10 +702,10 @@
[#reference_unordered_set_of_operator_bracket_key]
template< class CompatibleKey >
- data_type & operator[](const CompatibleKey & k);
+ mapped_type & operator[](const CompatibleKey & k);
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects: ] `return insert(value_type(k,data_type()))->second;`
+* [*Effects: ] `return insert(value_type(k,mapped_type()))->second;`
* [*Complexity:] If the insertion is performed O(I(n)), else: Average case
O(1) (constant), worst case O(n).
* [*Note:] Only provided when `unordered_set_of` is used and the other collection
@@ -712,10 +715,10 @@
[#reference_unordered_set_of_at_key]
template< class CompatibleKey >
- data_type & at(const CompatibleKey & k);
+ mapped_type & at(const CompatibleKey & k);
* [*Requires: ] `CompatibleKey` is a compatible key of `key_compare`.
-* [*Effects: ] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects: ] Returns the `mapped_type` reference that is associated with `k`, or
throws `std::out_of_range` if such key does not exist.
* [*Complexity:] Average case O(1) (constant), worst case O(n).
* [*Note:] Only provided when `unordered_set_of` is used and the other collection
@@ -731,17 +734,17 @@
a non-existent key: this behavior differs from that of std::map, which automatically
assigns a default value to non-existent keys referred to by `operator[]`.
- const data_type & operator[](const typename key_type & k) const;
+ const mapped_type & operator[](const typename key_type & k) const;
-* [*Effects:] Returns the `data_type` reference that is associated with `k`, or
+* [*Effects:] Returns the `mapped_type` reference that is associated with `k`, or
throws `bimap::value_not_found` if such an element does not exist.
* [*Complexity:] O(log(n)).
- ``['-unspecified data_type proxy-]`` operator[](const typename key_type & k);
+ ``['-unspecified mapped_type proxy-]`` operator[](const typename key_type & k);
-* [*Effects:] Returns a proxy to a `data_type` associated with `k` and the
-bimap. The proxy behaves as a reference to the `data_type` object. If this
+* [*Effects:] Returns a proxy to a `mapped_type` associated with `k` and the
+bimap. The proxy behaves as a reference to the `mapped_type` object. If this
proxy is read and `k` was not in the bimap, the bimap::value_not_found is
thrown. If it is written then `bimap::duplicate_value` is thrown if the
assignment is not allowed by one of the other views of the `bimap`.
Modified: trunk/libs/bimap/doc/reference/vector_of.qbk
==============================================================================
--- trunk/libs/bimap/doc/reference/vector_of.qbk (original)
+++ trunk/libs/bimap/doc/reference/vector_of.qbk 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -163,6 +163,9 @@
// Only in map views
// {
+ typedef ``['-unspecified-]`` key_type;
+ typedef ``['-unspecified-]`` mapped_type;
+ typedef ``['-unspecified-]`` data_type; // Equal to mapped_type
template< class CompatibleKey >
bool ``[link reference_vector_of_replace_key_iterator_key replace_key]``(iterator position, const CompatibleKey & x);
@@ -241,14 +244,14 @@
In the left map view:
typedef Left key_type;
- typedef ... data_type;
+ typedef ... mapped_type;
typedef signature-compatible with std::pair< Left, ... > value_type;
In the right map view:
typedef ... key_type;
- typedef Left data_type;
+ typedef Left mapped_type;
typedef signature-compatible with std::pair< ... , Left > value_type;
@@ -505,7 +508,7 @@
bool replace_data(iterator position, const CompatibleData & x);
* [*Requires: ] `position` is a valid dereferenceable iterator of the set view.
-`CompatibleKey` can be assigned to `data_type`.
+`CompatibleKey` can be assigned to `mapped_type`.
* [*Effects:] Assigns the value `x` to `e.second`, where `e` is the element pointed
to by `position` into the `bimap` to which the set view belongs if replacing is allowed by
all other views of the `bimap`.
@@ -544,7 +547,7 @@
bool modify_data(iterator position, DataModifier mod);
* [*Requires: ] `DataModifier` is a model of __SGI_UNARY_FUNCTION__ accepting arguments of
-type: `data_type&`; `position` is a valid dereferenceable iterator of the view.
+type: `mapped_type&`; `position` is a valid dereferenceable iterator of the view.
* [*Effects:] Calls `mod(e.second)` where e is the element pointed to by position and
rearranges `*position` into all the views of the `bimap`.
If the rearrangement fails, the element is erased.
Modified: trunk/libs/bimap/test/test_bimap.hpp
==============================================================================
--- trunk/libs/bimap/test/test_bimap.hpp (original)
+++ trunk/libs/bimap/test/test_bimap.hpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -20,6 +20,8 @@
#include <algorithm>
#include <boost/lambda/lambda.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/type_traits/is_same.hpp>
template< class Container, class Data >
void test_container(Container & c, const Data & d)
@@ -134,9 +136,35 @@
}
+template< class Container >
+void test_mapped_container(Container &)
+{
+ typedef BOOST_DEDUCED_TYPENAME Container:: value_type value_type ;
+ typedef BOOST_DEDUCED_TYPENAME Container:: key_type key_type ;
+ typedef BOOST_DEDUCED_TYPENAME Container:: data_type data_type ;
+ typedef BOOST_DEDUCED_TYPENAME Container::mapped_type mapped_type ;
+
+ typedef boost::is_same< key_type
+ , BOOST_DEDUCED_TYPENAME value_type::first_type
+ >::type test_key_type;
+ BOOST_STATIC_ASSERT(test_key_type::value);
+
+ typedef boost::is_same< data_type
+ , BOOST_DEDUCED_TYPENAME value_type::second_type
+ >::type test_data_type;
+ BOOST_STATIC_ASSERT(test_data_type::value);
+
+ typedef boost::is_same< mapped_type
+ , BOOST_DEDUCED_TYPENAME value_type::second_type
+ >::type test_mapped_type;
+ BOOST_STATIC_ASSERT(test_mapped_type::value);
+}
+
template< class Container, class Data >
void test_pair_associative_container(Container & c, const Data & d)
{
+ test_mapped_container(c);
+
assert( d.size() > 2 );
c.clear();
Modified: trunk/libs/bimap/test/test_bimap_sequenced.cpp
==============================================================================
--- trunk/libs/bimap/test/test_bimap_sequenced.cpp (original)
+++ trunk/libs/bimap/test/test_bimap_sequenced.cpp 2012-05-24 11:16:20 EDT (Thu, 24 May 2012)
@@ -81,6 +81,9 @@
test_sequence_container(b.left , left_data);
test_sequence_container(b.right,right_data);
+ test_mapped_container(b.left );
+ test_mapped_container(b.right);
+
bm_type c;
// Test assign
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk