
Thorsten Ottosen wrote:
| | | | boost::iterators::value<I>::type | | boost::iterators::reference<I>::type | | | | boost::ranges::value<R>::type | | | | and so forth? | | good idea to rename value_type<I>::type value<T>::type :-) I guess we | should do that with | | range::size<R>::type | range::difference<R>::type | | too.
I'm having second thoughts. It seems a little irritating to specify in a concept that the metafunctions reside in namespace X.
I guess the issue boils down to these choices:
typename range::value<T>::type [snip]
typename range_value<T>::type [snip]
or with full qualification
typename boost::range::value<T>::type [snip]
typename boost::range_value<T>::type [snip]
I think my personal view would be that I think range_ reads better than range::. Too many :: and it seems a bit confusing.
I'm personally prefer to use namespaces to structurize the code, i.e. the typename range::value<T>::type notation. The range_value<T>::type notation unneededly clutters the 'global' boost namespace. Regards Hartmut