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