|
Boost : |
From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2006-11-18 16:21:09
Steven Watanabe wrote:
>>Tobias Schwinger wrote:
>>
>> What's wrong with the tag types (other than personal taste) in the first place?
>>
>
> Anything that can be made to work with a different interface will work
> with the tags.
> So, to a large degree they are a matter of personal taste.
> I've had a lot of trouble trying to figure out why I didn't like them. I
> think it can be summarized as
> 1. They depart from existing (TypeTraits) usage for no
> particular gain.
> This is not really important especially since the default arguments make
> this invisible
> for the most common case and it would be very bad to forbid potential
> improvements just
> because they are different.
I agree.
> 2. Why are they used for some things and not others? The tags are used
> for variadicness,
> constness, and calling convention, but (from a user's perspective) they
> are not used
> for member pointer vs. function vs. function pointer.
The previous version used tags for these properties.
Further, 2 is in opposition to 1: putting the "function decoration" into tags will remove the "TypeTraits feel".
All I can say is: I've been there. I came to the conclusion that simple and straightforward client code is more important -- and it really did cost me quite an effort to let go of the nagging perfectionism about consistency for consistency's sake.
> 3. Why separate the return type and the parameters from everything else?
> I would
> prefer to either combine or separate EVERYTHING. That, however, is just
> personal
> taste.
For the same reason I'm not at all convinced that it would really make the library better.
However, these thoughts seem familiar, somehow ;-)... Thanks for taking the time to put them into words!
Regards,
Tobias
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk