// Copyright 2004 Alexander Nasonov. 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) #include #include #include #include #include #include #include #include #include #include #include #include using namespace boost; using mpl::_; struct general_test { typedef mpl::begin::type begin; typedef mpl::end::type end; BOOST_STATIC_ASSERT((is_same::value)); BOOST_STATIC_ASSERT((mpl::distance::type::value == 0)); BOOST_STATIC_ASSERT(mpl::size::value == 0); typedef mpl::advance_c::type advanced; BOOST_STATIC_ASSERT((is_same::value)); typedef mpl::clear::type cleared; BOOST_STATIC_ASSERT((is_same::value)); }; struct transform_test { typedef mpl::transform< mpl::empty_sequence, add_pointer<_> >::type empty_sequence; BOOST_STATIC_ASSERT((is_same::value)); typedef mpl::transform_view< mpl::empty_sequence, add_pointer<_> > empty_view; typedef mpl::begin::type begin; typedef mpl::end::type end; typedef mpl::advance_c::type advanced; BOOST_STATIC_ASSERT((is_same::value)); BOOST_STATIC_ASSERT((is_same::value)); BOOST_STATIC_ASSERT((mpl::distance::type::value == 0)); BOOST_STATIC_ASSERT(mpl::size::type::value == 0); }; int main() { general_test g; transform_test t; }