digitalmars.D.learn - Problem with take(map())
- bearophile (13/13) Jul 29 2011 D2 code:
- Daniel Murphy (5/18) Jul 30 2011 The problem is the parameter p is not being heap allocated. I'm fairly ...
D2 code:
import std.stdio, std.algorithm, std.range;
auto foo(int p) {
return map!((int n){ return p; })(iota(3));
}
void main() {
writeln(take(foo(2), 20));
}
To me it prints:
[4221068, 4221068, 4221068]
Do you know if this is a known bug/problem?
Bye,
bearophile
Jul 29 2011
The problem is the parameter p is not being heap allocated. I'm fairly sure
it's already in bugzilla, something about failing to detect escaping
references with alias parameters.
"bearophile" <bearophileHUGS lycos.com> wrote in message
news:j0vhod$t87$1 digitalmars.com...
D2 code:
import std.stdio, std.algorithm, std.range;
auto foo(int p) {
return map!((int n){ return p; })(iota(3));
}
void main() {
writeln(take(foo(2), 20));
}
To me it prints:
[4221068, 4221068, 4221068]
Do you know if this is a known bug/problem?
Bye,
bearophile
Jul 30 2011








"Daniel Murphy" <yebblies nospamgmail.com>