From: Paul A. Bristow (boost_at_[hidden])
Date: 2001-10-23 17:41:16
Thanks for this useful info. MSVC 6 seems to inline release so far,
which is the crucial requirement. (Others do as well - see Greg olven's
> -----Original Message-----
> From: Noah Stein [mailto:noah_at_[hidden]]
> Sent: Tuesday, October 23, 2001 7:17 PM
> To: boost_at_[hidden]
> Subject: RE: [boost] Math constants for naive and gurus? - which
> constants do you want?
> In regards to MSVC's handling of template code, here's some of what I've
> found in my experience:
> * Debug and release versions are rather asymmetric in their performance.
> MSVC will not inline code in debug builds (well, it might with
> some tweaking
> of the project options). For something recursive like Blitz's comma-list
> assignment, this can be quite a painful difference.
> * As others have pointed out, if a variable isn't used in a release build,
> it will almost definitely be optimized out completely. For the template
> code I've written, MSVC optimizes well.
> * Don't trust the "inline" keyword in MSVC, it doesn't work as
> much as you'd
> think. I wrote a vector-matrix library a year ago. I liked the Blitz
> comma-list assignment, so I added one. I looked at the release
> code for the
> matrix class, and it was what I expected: a list of immediate
> data stored in
> the variable. The vector, however, did not inline its code. Using
> "__forceinline" solved that problem. I would suggest setting
> inline=__forceinline in your project's compilation setting.
> * MSVC really needs to support partial specialization. Yeah,
> everyone knows
> it. Everyone says it. But I have to live with this headache
> every day, so
> I had to say it once, too.
> -- Noah
> Info: http://www.boost.org Unsubscribe:
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk