On Saturday, 11 November 2017 at 15:38:18 UTC, aki wrote:
Hello,
This will be trivial question but I cannot figure out
what's wrong. I want to convert string to an array of ubyte.
import std.conv;
void main() {
auto s = "hello";
ubyte[] b = to!(ubyte[])(s);
}
It compiles but cause run time error:
std.conv.ConvException@C:\APP\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(3530): Can't
parse string: "[" is missing
I cannot understand the meaning of this message.
Replacing s with s.dup to remove immutable doesn't help.
Do I need to use cast?
Regards,
Aki
to!(ubyte[]) is a semantic transformation that tries to parse an
array literal it seems.
You can use slice casting instead:
import std.conv;
void main() {
auto s = "hello";
ubyte[] b = cast(ubyte[])(s.dup);
}