Boost logo

Boost :

From: Eric Niebler (eric_at_[hidden])
Date: 2007-06-06 19:04:22

In proto, I have a specialization of fusion::extension::distance_impl<>
that looks like this:

   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:

     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

Boost list run by bdawes at, gregod at, cpdaniel at, john at