Subject: Re: [boost] [function] new implementation
From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2010-11-04 06:52:44


On 04.11.2010 11:30, Domagoj Saric wrote:
>
> "Sebastian Redl" <sebastian.redl_at_[hidden]> wrote in message
> news:4CD287ED.70301_at_getdesigned.at...
>
>> RVO in Clang is not very advanced yet, but the ICE thing with
>> static_asserts would be something we want to fix.
>
> It's not an ICE but a compilation failure...

Sorry, I meant ICE as in "integral constant expression", not "internal
compiler error". Those, we simply call crashes. ;-)

> ps. as a 'slight' off topic, since you seem to be involved in Clang
> development, you might want to make Clang a lot less eager to examine
> template code before it is instantiated (or add an option to that
> effect)...this sometimes acts as 'spiralling compile time killer'
> because it, for example, forces me to include headers that MSVC does
> not (or simply fails to compile 3rd party libraries like RapidXML)...
We can't, really. Clang is built from the ground-up to be eager in
checking template code. It's pretty much part of the design.

> The 'lazyness' of MSVC++ in template instantiation is probably one of
> the reasons why even Clang does not come near to it when it comes to
> compilation speed...
> Also the claim that Clang uses less RAM than GCC is not (always)
> true...with heavy template code (very convoluted mixtures of MPL and
> Fusion with typelist lengths up to 60) I've seen it eat 20-30% more
> than GCC 4.6 (but it still does compile faster, if you have enough
> RAM)...
Yes, we know that C++ compilation uses a lot of memory. We have ideas to
reduce it, but they're still not the top priority.

Sebastian