On Saturday, 30 April 2016 at 19:21:30 UTC, ag0aep6g wrote:
On 30.04.2016 21:08, Jon D wrote:
If an initial step is to fix the documentation, it would be helpful to include specifically that it doesn't work with characters. It's not
obvious that characters don't meet the requirement.

Characters are not the problem. remove works fine on a range of chars, when the elements are assignable lvalues. char[] as a range has neither assignable elements, nor lvalue elements. That is, lines 3 and 4 here don't compile:
----
import std.range: front;
char[] a = ['f', 'o', 'o'];
a.front = 'g';
auto ptr = &a.front;
----

Why exactly is it like this? I would understand why strings (immutable character arrays) behave like this, but I feel like plain old character arrays should work the same as an array of ubytes when treated as a range... Or is there some other string-related behavior that would get broken by this?

Reply via email to