|
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:
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk