Boost logo

Boost :

Subject: Re: [boost] [Review] GGL review starts today, November 5th
From: Barend Gehrels (barend_at_[hidden])
Date: 2009-11-13 13:47:22


Hi Stefan,

>
>>> - is there a default implementation of the traits classes? I haven't
>>> found one in code/coordinate_dimension.
>>> this would simplify writing concept models in many cases, especially with
>>> 5 different traits for a Point.
>>>
>> But there are registration macro's. They support different use cases. So
>> most people will not have problems adapting their classes to the concepts.
>>
>
> I think these macros are unnecessary.
>
You can do without if you don't like them. Besides that, Boost has many
macro's. Personally I also don't like them too much, but for
registration purposes they make sense.

> they do not hide implementation details, or simplify type registration beyond
> what would be possible without macros. it is always my intention to avoid
> macros in public interfaces when possible. if you agree with that, you could
> replace them with something like this:
>
>
> template<typename Geometry>
> struct tag{
> typedef typename geometry_traits<Geometry>::tag tag;
> };
>
I understand and we've considered that. But this way, you'll lose MPL
compatibility. The way how it is now was discussed by this Boost list
before.

> these changes could also be implemented easily, since the metafunctions,
> accessed by algorithms, stay the same.
>
>
I agree, but we preferred to not create large trait classes...

Regards, Barend


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk