// Copyright Aleksey Gurtovoy 2003-2004 // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // See http://www.boost.org/libs/mpl for documentation. // $Source$ // $Date$ // $Revision$ #include #include #include #include #include #include #include MPL_TEST_CASE() { typedef multiset0<> s0; typedef insert::type s1; typedef insert::type s2; typedef insert::type s3; typedef insert::type s4; MPL_ASSERT_RELATION( (count::value), ==, 0 ); MPL_ASSERT_RELATION( (count::value), ==, 1 ); MPL_ASSERT_RELATION( (count::value), ==, 1 ); MPL_ASSERT_RELATION( (count::value), ==, 1 ); MPL_ASSERT_RELATION( (count::value), ==, 2 ); MPL_ASSERT_RELATION( (count::value), ==, 1 ); MPL_ASSERT_RELATION( (count::value), ==, 1 ); } // Use a template for testing so that GCC will show us the actual types involved template void test() { BOOST_MPL_ASSERT_RELATION( size::value, ==, 3 ); typedef typename end::type not_found; BOOST_MPL_ASSERT_NOT(( is_same::type,not_found> )); BOOST_MPL_ASSERT_NOT(( is_same::type,not_found> )); BOOST_MPL_ASSERT_NOT(( is_same::type,not_found> )); BOOST_MPL_ASSERT(( is_same::type,not_found> )); }; MPL_TEST_CASE() { typedef insert, int> set_of_1_int; typedef begin::type iter_to_1_int; BOOST_MPL_ASSERT(( is_same< deref::type, int > )); typedef multiset0<> s0; typedef insert::type s1; typedef insert::type s2; typedef insert::type myset; test(); test(); }