On 4/30/12 8:08 AM, Jonathan M Davis wrote:
On Monday, April 30, 2012 01:42:38 WhatMeWorry wrote:
I'm trying to get my head around D's type conversion. What is the
best way to convert a string to a char array? Or I should say is
this the best way?

string s = "Hello There";
char[] c;

c = string.dup;

dup will return a mutable copy of an array. idup will return an immutable copy
of an array. They will both always copy. If you want to convert without having
to make a copy if the array is of the constancy that you want already (e.g. if
a templated function is templated on string type, and it could be any
constancy of char[]), then use std.conv.to.

auto c = to!(char[])(str);

If str was already char[], then it will just be returned, whereas if it's
immutable(char)[], then it would dup it and return that.

Also, what is the best way to explicitly convert a string to an
int?  I've been looking at Library Reference (Phobos) but I'm
stuck.

Use std.conv.to:

auto i = to!string("1234");

std.conv.to is what you use for pretty much any conversion.

- Jonathan M Davis

Can the documentation of std.conv be fixed?

http://dlang.org/phobos/std_conv.html#to

I mean, all the toImpl methods are documented, but in "to" it clearly says "Client code normally calls to!TargetType(value) (and not some variant of toImpl." I think all the documentation should be in "to". Now it sounds like you know what "to" does... but people read documentation because they don't know what it does.

There's also no need to document all the different parse methods in different places. Just one place is enough and simpler to read.

Reply via email to