#include #include #include #include template void test_forward_iterator(Iterator const& i) { Iterator j = i; BOOST_ASSERT(*j == *i); // OK Iterator k; k = i; BOOST_ASSERT(*k == *i); // Oops! } int main(int argc, char* argv[]) { using boost::phoenix::arg_names::_1; int ar[3] = {}; test_forward_iterator(boost::make_transform_iterator(ar, _1 + 5)); return 0; }