Problem with take(map())
Daniel Murphy
yebblies at nospamgmail.com
Sat Jul 30 22:46:53 PDT 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 at lycos.com> wrote in message
news:j0vhod$t87$1 at 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
More information about the Digitalmars-d-learn
mailing list