diff --git a/include/boost/mpl/empty_sequence.hpp b/include/boost/mpl/empty_sequence.hpp index 94f5f5a..f32cc6e 100644 --- a/include/boost/mpl/empty_sequence.hpp +++ b/include/boost/mpl/empty_sequence.hpp @@ -23,7 +23,8 @@ namespace boost { namespace mpl { struct empty_sequence { - struct tag; + struct tag; + typedef empty_sequence type; struct begin { typedef random_access_iterator_tag category; }; typedef begin end; }; diff --git a/include/boost/mpl/map/aux_/item.hpp b/include/boost/mpl/map/aux_/item.hpp index d0df522..a0a98ca 100644 --- a/include/boost/mpl/map/aux_/item.hpp +++ b/include/boost/mpl/map/aux_/item.hpp @@ -40,6 +40,7 @@ struct m_item typedef Key key_; typedef pair item; typedef Base base; + typedef m_item type; typedef typename next< typename Base::size >::type size; typedef typename next< typename Base::order >::type order; @@ -62,6 +63,7 @@ struct m_mask { typedef void_ key_; typedef Base base; + typedef m_mask type; typedef typename prior< typename Base::size >::type size; typedef typename x_order_impl::type key_order_; @@ -123,6 +125,7 @@ struct m_mask { typedef void_ key_; typedef Base base; + typedef m_mask type; typedef typename prior< typename Base::size >::type size; typedef typename x_order_impl::type key_order_; diff --git a/include/boost/mpl/set/aux_/item.hpp b/include/boost/mpl/set/aux_/item.hpp index e90e490..bd5bc95 100644 --- a/include/boost/mpl/set/aux_/item.hpp +++ b/include/boost/mpl/set/aux_/item.hpp @@ -33,6 +33,7 @@ struct s_item typedef void_ last_masked_; typedef T item_type_; typedef typename Base::item_ base; + typedef s_item type; typedef typename next< typename Base::size >::type size; typedef typename next< typename Base::order >::type order; @@ -57,6 +58,7 @@ struct s_mask typedef void_ item_type_; typedef typename Base::item_ base; typedef typename prior< typename Base::size >::type size; + typedef s_mask type; BOOST_MPL_AUX_SET_OVERLOAD( aux::yes_tag, IS_MASKED, s_mask, aux::type_wrapper* ); }; diff --git a/test/empty_sequence.cpp b/test/empty_sequence.cpp index a9501cc..2fa989f 100644 --- a/test/empty_sequence.cpp +++ b/test/empty_sequence.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -33,4 +34,6 @@ MPL_TEST_CASE() typedef advance_c::type advanced; MPL_ASSERT(( is_same )); + + MPL_ASSERT(( equal< empty_sequence, empty_sequence::type > )); } diff --git a/test/filter_view.cpp b/test/filter_view.cpp index 35210a5..2ae5754 100644 --- a/test/filter_view.cpp +++ b/test/filter_view.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -26,6 +27,10 @@ MPL_TEST_CASE() { typedef mpl::list types; + typedef mpl::list floats; + + MPL_ASSERT(( equal< mpl::filter_view< types,boost::is_float<_> >::type,floats > )); + typedef mpl::max_element< mpl::transform_view< mpl::filter_view< types,boost::is_float<_> > diff --git a/test/joint_view.cpp b/test/joint_view.cpp index f71958a..17f824c 100644 --- a/test/joint_view.cpp +++ b/test/joint_view.cpp @@ -30,6 +30,7 @@ MPL_TEST_CASE() typedef range_c answer; MPL_ASSERT(( equal )); + MPL_ASSERT(( equal )); MPL_ASSERT_RELATION( size::value, ==, 15 ); } diff --git a/test/map.cpp b/test/map.cpp index 17ad99d..f39b85d 100644 --- a/test/map.cpp +++ b/test/map.cpp @@ -217,3 +217,19 @@ MPL_TEST_CASE() > )); } + +MPL_TEST_CASE() +{ + typedef insert< map<>, pair >::type little_map; + + MPL_ASSERT_RELATION(size::value, ==, 1); + MPL_ASSERT_RELATION(size::value, ==, 1); +} + +MPL_TEST_CASE() +{ + typedef erase_key< map< pair, pair >, float >::type little_map; + + MPL_ASSERT_RELATION(size::value, ==, 1); + MPL_ASSERT_RELATION(size::value, ==, 1); +} diff --git a/test/set.cpp b/test/set.cpp index ab291d9..0710b41 100644 --- a/test/set.cpp +++ b/test/set.cpp @@ -329,3 +329,19 @@ MPL_TEST_CASE() find_test(); find_test(); } + +MPL_TEST_CASE() +{ + typedef insert< set<>, int >::type little_set; + + MPL_ASSERT_RELATION(size::value, ==, 1); + MPL_ASSERT_RELATION(size::value, ==, 1); +} + +MPL_TEST_CASE() +{ + typedef erase_key< set< float, int >, float >::type little_set; + + MPL_ASSERT_RELATION(size::value, ==, 1); + MPL_ASSERT_RELATION(size::value, ==, 1); +} diff --git a/test/single_view.cpp b/test/single_view.cpp index c46096e..18169d3 100644 --- a/test/single_view.cpp +++ b/test/single_view.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include MPL_TEST_CASE() @@ -37,4 +38,6 @@ MPL_TEST_CASE() MPL_ASSERT_RELATION( (mpl::distance::value), ==, 0 ); MPL_ASSERT_RELATION( size::value, ==, 1 ); + + MPL_ASSERT(( equal< view, view::type > )); } diff --git a/test/transform_view.cpp b/test/transform_view.cpp index bc1fbcf..ff8fe6b 100644 --- a/test/transform_view.cpp +++ b/test/transform_view.cpp @@ -16,12 +16,22 @@ #include #include #include +#include #include - MPL_TEST_CASE() { typedef list types; + typedef list< + sizeof_::type, + sizeof_::type, + sizeof_::type, + sizeof_::type, + sizeof_::type + > sizes; + + MPL_ASSERT(( equal< transform_view< types, sizeof_<_> >::type,sizes > )); + typedef max_element< transform_view< types, sizeof_<_> > >::type iter;