CTFE is getting too powerful :o)
bearophile
bearophileHUGS at lycos.com
Wed Mar 27 08:44:37 PDT 2013
Andrei Alexandrescu:
> Soon we'll need to clearly define the limits of CTFE, and what
> happens when it fails.
It seems a bug, this is a reduction:
struct MapResult(alias fun) {
int[] _input;
@property bool empty() {
return _input.length == 0;
}
void popFront() {
_input = _input[1 .. $];
}
@property auto ref front() {
return fun(1);
}
}
auto map(alias fun)(int[] r) {
return MapResult!(fun)(r);
}
auto foo(int[] r) {
return map!(x => r)([1]);
}
enum r1 = [1];
version (stat) {
auto result = foo(r1);
}
void main() {
version (stat) {
} else {
auto result = foo(r1);
}
foreach (t; result) {}
}
Bye,
bearophile
More information about the Digitalmars-d
mailing list