$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2006-11-19 03:29:14
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