$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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