std.array.Appender with fixed size arrays

Ali Çehreli acehreli at yahoo.com
Tue Jun 8 10:52:17 PDT 2010


Richard Webb wrote:
> Hi,
> 
> While trying to get some things to build in D2, i noticed that the code:
> 
> ////////////////////
> import std.array;
> 
> void main (string[] args)
> {
>     string s;
>     auto app = appender(&s);
>     app.put(['a', 'b']);
> }
> /////////////////////
> 
> works, but if it's changed to;
> 
> char[2] tmp = ['a', 'b'];
> app.put(tmp);
> 
> then it fails. Seems to be because char[2] isn't a forward range, so it
> doesn't match the version of put that takes a range.
> 
> Is this a bug?

The problem is due to a relatively recent change to D2: the size of 
fixed sized arrays may not be changed. (I like how it fits their name. :) )

Ali


More information about the Digitalmars-d-learn mailing list