diff options
Diffstat (limited to 'src/boost/libs/mpl/test/pair_view.cpp')
-rw-r--r-- | src/boost/libs/mpl/test/pair_view.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/boost/libs/mpl/test/pair_view.cpp b/src/boost/libs/mpl/test/pair_view.cpp new file mode 100644 index 00000000..937ff427 --- /dev/null +++ b/src/boost/libs/mpl/test/pair_view.cpp @@ -0,0 +1,45 @@ + +// Copyright David Abrahams 2003-2004 +// Copyright Aleksey Gurtovoy 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. + +// $Id$ +// $Date$ +// $Revision$ + +#include <boost/mpl/pair_view.hpp> +#include <boost/mpl/vector/vector50_c.hpp> +#include <boost/mpl/range_c.hpp> +#include <boost/mpl/distance.hpp> +#include <boost/mpl/aux_/test.hpp> + + +MPL_TEST_CASE() +{ + typedef range_c<int,0,10> r; + typedef vector10_c<int,9,8,7,6,5,4,3,2,1,10> v; + + typedef pair_view<r,v> view; + typedef begin<view>::type first_; + typedef end<view>::type last_; + + MPL_ASSERT(( is_same< first_::category, mpl::random_access_iterator_tag > )); + + MPL_ASSERT(( is_same< advance_c<first_,0>::type, first_ > )); + MPL_ASSERT(( is_same< advance_c<last_,0>::type, last_ > )); + MPL_ASSERT(( is_same< advance_c<first_,10>::type, last_ > )); + MPL_ASSERT(( is_same< advance_c<last_,-10>::type, first_ > )); + + typedef advance_c<first_,5>::type iter; + + MPL_ASSERT(( is_same< + deref<iter>::type + , mpl::pair< integral_c<int,5>,integral_c<int,4> > + > )); + +} |