diff --git a/test/Jamfile b/test/Jamfile index 44faad7d..88c225c8 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -102,6 +102,7 @@ import testing ; [ run sequence/vector_value_at.cpp : : : : ] [ run sequence/zip_view.cpp : : : : ] [ run sequence/zip_view2.cpp : : : : ] + [ run sequence/zip_view_ignore.cpp : : : : ] [ run sequence/deduce_sequence.cpp : : : : ] [ run functional/fused.cpp : : : : ] [ run functional/fused_function_object.cpp : : : : ] diff --git a/test/sequence/zip_view_ignore.cpp b/test/sequence/zip_view_ignore.cpp new file mode 100644 index 00000000..5eb3bf39 --- /dev/null +++ b/test/sequence/zip_view_ignore.cpp @@ -0,0 +1,58 @@ +/*============================================================================= + Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2007 Dan Marsden + + 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 + +int main() +{ + using namespace boost::fusion; + { + typedef vector2 int_vector; + typedef vector2 char_vector; + typedef vector seqs_type; + typedef zip_view view; + + int_vector iv(1,2); + char_vector cv('a','b'); + seqs_type seq(iv, unused, cv); + view v(seq); + + BOOST_TEST(at_c<0>(front(v)) == 1); + BOOST_TEST(at_c<2>(front(v)) == 'a'); + BOOST_TEST(at_c<0>(back(v)) == 2); + BOOST_TEST(at_c<2>(back(v)) == 'b'); + + typedef result_of::begin::type first_iterator; + typedef result_of::value_of::type first_element; + + typedef result_of::at_c::type e0; + typedef result_of::at_c::type e2; + BOOST_MPL_ASSERT((boost::is_same)); + BOOST_MPL_ASSERT((boost::is_same)); + + BOOST_TEST(size(front(v)) == 3); + + typedef result_of::value_at_c::type first_value_at; + typedef result_of::value_at_c::type v0; + typedef result_of::value_at_c::type v2; + + BOOST_MPL_ASSERT((boost::is_same)); + BOOST_MPL_ASSERT((boost::is_same)); + + BOOST_TEST(at_c<0>(at_c<0>(v)) == 1); + BOOST_TEST(at_c<2>(at_c<0>(v)) == 'a'); + } + return boost::report_errors(); +}