From: Pavol Droba (droba_at_[hidden])
Date: 2004-05-07 02:47:49


On Fri, May 07, 2004 at 09:59:44AM +0200, John Torjo wrote:
> David Abrahams wrote:
>
> >John Torjo <john.lists_at_[hidden]> writes:
> >
> >
> >
> >>>Let's assume this library is to be called Range Traits with
> >>>RangeConcept, ExternalRangeConcept and,
> >>>ExternalReversibleRangeConcept, can John/Mathew then find a
> >>>reasonable name for their concept:
> >>>
> >>>
> >
> >I'm afraid I'm going to object to any name of the form "XXX traits"
> >for this library unless it consists entirely of metafunctions. If
> >not, can we just call it the Range library and leave it at that?
> >
> >
> >
> IMO Range library is a too general name, since this is actually just a
> tool to find the metadata (traits) about a range. (In other words, how
> will Matt and me call our library? ;) )
> And we can think of end(),begin(),... functions as some helpers built on
> top of the library.
>
> Still, I'm ok with it if this will be the general oppinion.
>
> Also, another suggestion:
>
> How about a range_traits class:
>
> template<class C> struct range_traits {
> typedef typename iterator_of<C>::type iterator;
> typedef typename const_iterator_of<C>::type iterator;
> ...etc
> };
>
> It seems to me it provides a more unified of finding metadata about a
> range (and it's a traits class ;))
> Has this been suggested already?

There was a long discussion about this issue some time ago. Monolitic
class is not an acceptable solution, due to several reasons.

Regards,

Pavol