On Mon, Jul 14, 2014 at 09:12:30PM +0000, Klb via Digitalmars-d-learn wrote: > hello what is the right syntax for this: > > ---------------------------------------------------- > import std.stdio, std.conv; > > void main(string args[]) > { > ubyte[3] src = [0, 1, 2]; > string trg = ""; > > @property ubyte[3] srcAsProp(){return src;} > > // Error: template std.conv.to cannot deduce function from argument types > // !(string)(ubyte[3]), candidates are: > trg = to!(string)(srcAsProp()); > } > ---------------------------------------------------- > > In a real-world application I'd use an intermediate value but I'd like > to know If it's possible...The strange fact is that it doesn't trig an > error if src is a dyn. array. (if you remove the 3 from [3] then it > passes).
You need to slice the static array: trg = to!string(srcAsProp()[]); Or, if you like to use UFCS (Uniform Function Call Syntax): trg = srcAsProp()[].to!string; You might want to file an enhancement request to improve the error message, though -- it's not very helpful as it stands. T -- Trying to define yourself is like trying to bite your own teeth. -- Alan Watts