Ellery Newcomer wrote:
Andrei Alexandrescu wrote:
Ellery Newcomer wrote:
Andrei Alexandrescu wrote:
TDPL boasts the code:
void main()
{
string a = "Hall\u00E5";
wstring b = ", ";
dstring c = "V\u00E4rld";
auto d = b ~ c; // d has type wstring, same as b
a ~= d ~ '!'; // concatenate string with character
writeln(a);
}
We are having second thoughts about allowing b ~ c. It may be just a bit
too clever. Also, figuring out the result type is not a slam dunk. The
pro arguments are that strings are already supported by the compiler in
iteration, literals, and concatenation of a char[] with a dchar.
What say you?
Andrei
What are the current ideas on result type and why don't they dunk?
The result type would be the type of the left-hand side. This makes ~
consistent of sorts with ~=.
That seems intuitive enough. Its what I would have guessed.
(personally, I like the idea of a syntax for converting from one unicode
representation to another)
I don't think that's an option at the moment.
Andrei
I don't know what I ended up saying, but I meant
a = ""c ~ somewstring;
beats
a = std.utf.toString(somewstring);
//no I'm not going to check if that's the right function
am I still missing something?
a = string( somewstring )
is much cleaner.
This an example of a constructor function.
Sadly, D does not support constructor functions (that I know of).
Justin Johansson