On 7/9/12 4:09 PM, Jacob Carlborg wrote:
Almost every time I'm trying to use std.algorithm I run into some kind of error, for what seems to be fairly trivial and what one would expect to work. It feels like I'm constantly fighting with std.algorithm. For example:import std.algorithm; import std.range; struct Foo {} auto f = Foo(); auto foos = [f]; auto foo = foos.map!(x => "foo"); auto bar = foo.chain("bar"); This simple example result in the follow error: http://pastebin.com/E4LV2UBE
So foo is a range of strings, because each element of it is a string. Then you want to chain a range of strings with a string, which is a range of dchar. That doesn't work, and I agree the error message should be more informative.
To fix the example, write auto bar = foo.chain(["bar"]);
Another example: auto str = ["foo", "bar"].map!(x => x); auto f = str.sort(); Results in: http://pastebin.com/BeePWQk9
The first error message is at clear as it goes: Error: r[i2] is not an lvalue Andrei
