
In proto, I have a specialization of fusion::extension::distance_impl<> that looks like this: template<> struct distance_impl<proto::proto_ref_iterator_tag> { template<typename IteratorFrom, typename IteratorTo> struct apply { typedef mpl::long_< IteratorTo::index::value - IteratorFrom::index::value > type; }; }; This worked fine until fairly recently. But now there is code in algorithm/iteration/detail/for_each.hpp like this: for_each_unrolled< result_of::distance<begin, end>::value
::call(fusion::begin(seq), f);
The problem is with distance<begin, end>::value. My distance_impl<> doesn't provide a nested value. It provides a nested type. If this were distance<begin, end>::type::value, it works. It also works if I change my distance_impl<> specialization, but I don't think I should have to. Bug? -- Eric Niebler Boost Consulting www.boost-consulting.com
participants (1)
-
Eric Niebler