Is it possible the commented below condition. With regular ranges i make as many 'base()' calls as may adaptors i had applied. Obviously it's impossible with any_range. So what should i do ?map_t m;forward_range_t rng = m | map_values | transformed(bind(&foo::x, _1)); // note: don't compile without BOOST_RANGE_ENABLE_CONCEPT_ASSERT defined as 0forward_range_t::const_iterator found = boost::find_if(rng, is_valid);// found == boost::end(m); how to do it right ?}