// (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. // 8 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 ::iterator_category > 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 ::reference ::pointer ::iterator_category ::difference_type > 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; }