Is implicit string literal concatenation a good thing?

Ellery Newcomer ellery-newcomer at utulsa.edu
Sun Feb 22 20:16:04 PST 2009


bearophile wrote:
> Denis Koroskin:
>> bearophile:
>>> void main() {
>>>     string foo = "foo";
>>>     string bar = foo ~ "bar" ~ "baz";
>>> }
>>>
>> Won't work. Imaging foo is a user-defined type with custom opCat:
>> auto bar = foo  ~  "123" ~  "456";
>> compare to:
>>       std::cout << "123" << "456";
> 
> In this thread I was talking about the concat of true strings, not of generic objects:
> auto bar = foo  ~ ("123" ~  "456");
> 
> Are you saying that the concat operation of
> "123" ~  "456"
> has a different (invisible) "operator" precedence of:
> "123" "456" ?
> If this is true, then the ~ isn't a fully drop-in replacement for the automatic concat of strings as done in C...
> 
> Bye,
> bearophile

"123" "456" has the higher precedence



More information about the Digitalmars-d mailing list