CTFE Status
Stefan Koch via Digitalmars-d
digitalmars-d at puremagic.com
Sat Dec 3 12:04:53 PST 2016
On Saturday, 3 December 2016 at 19:28:52 UTC, Stefan Koch wrote:
> On Saturday, 3 December 2016 at 18:16:21 UTC, Stefan Koch wrote:
>> [...]
>
> StructLiteral regressions fixed.
> That one was hard to find.
> Basically the for Array arguments interfered with this one.
> Arguments are technically the same expression as everything
> else.
> But in order to support targets that do have native function
> calls,
> and in order to archive more performance for the interpreter
> they have to be treated quite differently from non-argument
> expressions.
>
> For now they should work, but it's brittle at best.
The following code now compiles with newCTFE:
struct S
{
uint u1;
uint u2;
}
S makeTenTen()
{
return S(10, 10);
}
S makeS(uint a, uint b)
{
return S(a, b);
}
uint getu2(S s)
{
return s.u2;
}
static assert(getu2(S(10, 14)) == 14);
static assert(makeTenTen() == makeS(10, 10));
More information about the Digitalmars-d
mailing list