On Wednesday, 27 November 2013 at 02:43:56 UTC, Parke wrote:
[snip]/src/phobos/std/range.d(614): Error: static assert "Cannot put a immutable(char) into a char[40]"

Static arrays aren't considered ranges in templates because their length can't change. If you slice it, however, it will work, since a slice is a valid range:

import std.base64;
ubyte[]  s0 = ['H','e','l','l','o'];
char[40] s1;
void main () {
  import std.stdio;
  auto encodedData = Base64.encode (s0, s1[]); // notice the []
  writeln(encodedData);
}


Then base64.encode returns the slice into the string that it actually used.

The slice operator, [], returns a view into the array that can be advanced by the encode function as needed.

Reply via email to