// (C) Copyright Jeremy Siek 2000. Permission to copy, use, modify, // sell and distribute this software is granted provided this // copyright notice appears in all copies. This software is provided // "as is" without express or implied warranty, and with no claim as // to its suitability for any purpose. // 04 Nov 2001 Jeremy Siek // Updated with respect to new named parameter interface. // 08 Mar 2001 Jeremy Siek // Initial checkin. #include #include #include class bar { }; void foo(bar) { } int main() { using boost::dummyT; dummyT array[] = { dummyT(0), dummyT(1), dummyT(2), dummyT(3), dummyT(4), dummyT(5) }; typedef boost::iterator_adaptor my_iter; my_iter mi(array); { typedef boost::iterator_adaptor, boost::iterator_category_is > iter_type; BOOST_STATIC_ASSERT((boost::is_same::value)); BOOST_STATIC_ASSERT(( ! boost::is_convertible::value)); iter_type i(mi); boost::input_iterator_test(i, dummyT(0), dummyT(1)); } { typedef boost::iterator_adaptor, boost::reference_is, boost::pointer_is , boost::iterator_category_is, boost::difference_type_is > adaptor_type; adaptor_type i(array); boost::input_iterator_test(i, dummyT(0), dummyT(1)); int zero = 0; if (zero) // don't do this, just make sure it compiles assert((*i).m_x == i->foo()); } return 0; }