
David Abrahams wrote:
Thorsten Ottosen <thorsten.ottosen@dezide.com> writes:
namespace boost { template< typename C > struct range_iterator { typedef BOOST_RANGE_DEDUCED_TYPENAME mpl::if_< BOOST_DEDUCED_TYPENAME is_const<C>::type, BOOST_DEDUCED_TYPENAME range_const_iterator< BOOST_DEDUCED_TYPENAME remove_const<C>::type >::type, BOOST_DEDUCED_TYPENAME range_mutable_iterator<C>::type >:: type type; };
} // namespace boost
Well, I think the logic is probably right but I have to say the code looks a lot more complex than it probably ought to.
But besides that, what else do you think looks complicated?
Maybe it's just all the macros. BOOST_DEDUCED_TYPENAME should have been renamed BOOST_TYPENAME years ago, but you're still using it way more than I've ever found necessary to satisfy old compilers.
Well, I think I also need to remove BOOST_RANGE_DEDUCED_TYPENAME. Maybe it's time for sed --in-place -e "s/BOOST_DEDUCED_TYPENAME/BOOST_TYPENAME/" . ? -Thorsten