bearophile <[email protected]> wrote:
Simen kjaeraas:
This is fairly simple currently:
[snip]
Do you mean code like this (this doesn't work yet)?
[snip]
Yeah.
I suggest all people in all D newsgroups, to write code that runs, not
uncompilable snippets. All errors in the last Walter's talk can be
avoided in few minutes running the code. In Python newsgroups 90% of the
code snippets are run before they are shown to people.
Of course. But not always does time allow us such excesses. :p
In cases
like this, I long for some features of the C preprocessor, which would
be able to insert any kind of code wherever it wants.
It's much better to look for more clean solutions.
That was kinda my point. :p
This feature request, and Steve's problems with final (in
std.pattern..mixin temptes..std.concurrency), makes me think there
should be some way to specify all (or at least most) such conditionally.
There seems to be a real need for it.
A silly idea to add or not add an attribute:
import std.traits: IF = Select;
IF!(isPure!TF, @pure, @nothing) int[] map(TF)(TF func, int[] array) {...}
I'd be fine with something like that. Or (Inspiration taken from template
constraints):
( @pure if ( isPure!TF ) ) ( @nothrow if ( isNothrow!TF ) ) int[]
map(TF)(TF func, int[] array) {...}
--
Simen