David Abrahams wrote:
> Lastly, I know that Aleksey will argue with me about this, 

Yep, I will :).

> but I have a strong preference for "class" rather than "typename" in
template
> parameter lists.  Aside from the fact that it's longer, "typename" is
> visually confusable because it can mean other multiple things when it
> appears between <...>:
> 
>    template <typename T, typename U = typename metafunction<T>::type>
> 
> vs
> 
>    template <class T, class U = typename metafunction<T>::type>

IMO it's more a problem with the layout of template parameters than with
anything else:

    template< 
          typename T
        , typename U = typename metafunction<T>::type
        >
    class her;

In short, my motivation for using 'typename's here is that I perceive the
'class' keyword as rather high-weight, semantically loaded, and prefer to
use it in its only original context - that is, for declaring/defining a
user-defined type that is more than a POD. Using it in other places cheapens
the word. 

That's all subjective, of course. 

Just clarifying my position :).

Aleksey
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to