|
Boost : |
Subject: Re: [boost] [C++0x] Report from Frankfurt committee meeting
From: Andrew Sutton (andrew.n.sutton_at_[hidden])
Date: 2009-08-13 12:34:50
I'm not writing for C++03. "Start fresh". That's my motto. (It isn't
really).
> I'm waving my hands a bit since F() and Args() require everything to be
>> default constructible, but you can get around that with some clever
>> metaprogramming machinery and fake accessor functions.
>>
>
> Which is why I use make<T>() instead of T().
I used something similar (cons<T>), which is specialized for lvalue, rvalue
references.
> Caveat: you probably need an SVN build of GCC to actually make that work
>> without internal compiler errors :)
>>
>
> I've had no problem at all with a standard GCC 4.4 build.
> What kind of ICEs are they? If it's mangling issues, they're not very hard
> to circumvent usually.
>
With GCC 4.5... It wasn't this particular example - and it may have just
been a regression - but I had an ICE using a similar technique when trying
to determine if list<int>::iterator (i.e. list_iterator<int> or whatever it
is) had an operator*. The error was in tsubst_copy, but it seems to have
gone away.
Andrew Sutton
andrew.n.sutton_at_[hidden]
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk