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

Reply via email to