digitalmars.D.learn - Type inference + forwarding lambda predicate
- Jacob Carlborg (17/17) Jan 04 2013 The following code results in a Segmentation fault: 11. The reason seems...
- Maxim Fomin (5/20) Jan 04 2013 Seems to be a lambda bug. Take a look at
The following code results in a Segmentation fault: 11. The reason seems to be because "any" is called indefinitely. But if I don't use type inference for the lambda it works correctly. import algorithm = std.algorithm; bool any (alias predicate, Range) (Range range) { return algorithm.any!(predicate)(range); } void main () { auto arr = ["foo"]; any!(e => e == "asd")(arr); // segfault // any!((string e) => e == "asd")(arr); // works } Am I doing something wrong or is this a bug? -- /Jacob Carlborg
Jan 04 2013
On Friday, 4 January 2013 at 16:06:38 UTC, Jacob Carlborg wrote:The following code results in a Segmentation fault: 11. The reason seems to be because "any" is called indefinitely. But if I don't use type inference for the lambda it works correctly. import algorithm = std.algorithm; bool any (alias predicate, Range) (Range range) { return algorithm.any!(predicate)(range); } void main () { auto arr = ["foo"]; any!(e => e == "asd")(arr); // segfault // any!((string e) => e == "asd")(arr); // works } Am I doing something wrong or is this a bug?Seems to be a lambda bug. Take a look at http://d.puremagic.com/issues/show_bug.cgi?id=8774 especially last Walter's comments. He has fixed many similar issues but there are still some problems. This appears to be another one.
Jan 04 2013