Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-02 08:35:16


"Jaap Suter" <J.Suter_at_[hidden]> writes:

>> First thing to note is that you leave out "typename" all over the
>> place. Try testing your examples with GCC-3.2.
>
> Yeah, I noticed. I had the same problem when porting my own code from Intel
> to GCC. Strange that the strongly-conforming Intel compiler doesn't issue a
> warning for it.

Intel C++ for Windows runs in a "Microsoft Bug-Compatible Mode" by
default. Try adding -QAnsi to the command-line.

>> One more hint you should use as an item: "Use inheritance to forward
>> metafunction results". So:
>
> Awesome! I hadn't thought of this one before. Thanks!! And added to the
> WIKI.
> Small question: is struct inheritance public by default,

Yes.

> or did you forget a 'public' there?

No.

>> Lastly, I know that Aleksey will argue with me about this, but I have
>> a strong preference for "class" rather than "typename" in template
>> parameter lists.
>
> Haha, I did not add an item to the WIKI, because I don't think it's
> good to promote something if even the MPL itself doesn't use it.

I think we really need a survey, because the syntax of templates is
difficult enough without introducing unneccessary confusion.

> However, you did convince me, mostly because it allows me to do easier
> global-search-and-replaces for typename to BOOST_DEDUCED_TYPENAME :) hehe.

There are so many reasons...

See, even automated tools find it less confusable when you write 'class' ;-)

-- 
                       David Abrahams
   dave_at_[hidden] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

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