On Monday, 27 June 2016 at 06:52:58 UTC, Ola Fosheim Grøstad
wrote:
On Monday, 27 June 2016 at 03:09:46 UTC, Meta wrote:
On Sunday, 26 June 2016 at 22:32:55 UTC, Walter Bright wrote:
On 6/26/2016 10:18 AM, Enamex wrote:
- template arguments that accept constant values of any
type whatsoever
'template<auto Arg>';
Still adding D features, I see!
Imitation is the sincerest form of flattery, so when is
destructuring coming to D?
Also, the `if (init; condition) and switch (init; condition)`
seems like a very nice idea.
It's from Go, I don't see much value in it. You can just wrap
the if in a block:
{
init;
if(condition)…
}
That is usually more readable IMO.
No, it's the logical conclusion from the for(init; condition;
increment) loop and the declare a variable anywhere feature,
introduced in C++ long time ago.
It's funny that C++ now will introduce it, as I had the same idea
a couple of weeks ago for C. I'm currently in the process of
transforming old legacy C code that had all their variables
declared at the top, to a more modern style, using C99 feature
taken from C++, i.e. vars only declared and initialized when they
are used and using for(initdeclaration;...) style.
It appeared quite rapidly that in a lot of cases the if(init; and
switch(init; would have been nice as it would have brought a lot
of regularity in the code and it allows to limit the scope of a
temporary variable really to the section it is used in without
overloading the code with { and }.
btw: I was first quite skeptical of the gain to be had of that
scope reduction transformation, but after discovering several
serious bugs in our code because of scope errors, I am now
transforming more systematically to that style our 200K lines of
C code.