std.algorithm move() struct emptying
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Aug 31 09:37:21 PDT 2010
On 8/31/10 11:28 CDT, Philippe Sigaud wrote:
> On Tue, Aug 31, 2010 at 17:05, Andrei Alexandrescu
> <SeeWebsiteForEmail at erdani.org <mailto:SeeWebsiteForEmail at erdani.org>>
> wrote:
>
> On 8/31/10 7:49 CDT, Michel Fortin wrote:
>
> On 2010-08-31 06:16:17 -0400, bearophile
> <bearophileHUGS at lycos.com <mailto:bearophileHUGS at lycos.com>> said:
>
> If in generic code T.init is not guaranteed to be an lvalue,
> as your
> example shows, isn't it better to disallow (turning it into
> a syntax
> error) &T.init in all cases?
>
>
> Personally, I'd say the code should check if T.init is an lvalue
> using
> __traits(compiles, &T.init) or is(typeof(&T.init)) and avoid
> creating a
> static variable or temporary when it is. This optimization of course
> depends &T.init not being a syntax error.
>
>
> I recall I wrote that code to avoid a compiler bug when T ==
> Tuple!(some types).
>
> Andrei
>
>
> Is that related to this bug?
> http://d.puremagic.com/issues/show_bug.cgi?id=4536
>
>
> Philippe
Very possible.
Andrei
More information about the Digitalmars-d
mailing list