Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
September 23, 2013 Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
In C/C++ in the presence of the preprocessor a string char foo[] = "\ long\ string\ without\ linefeeds\ "; Is translated by the preprocessor to char foo[] = "longstringwithoutlinefeeds"; is there a similar mechanism in D? Or should I do... string foo = "long" "string" "without" "linefeeds" ; |
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Carter | On Monday, 23 September 2013 at 04:43:16 UTC, John Carter wrote:
> In C/C++ in the presence of the preprocessor a string
>
> char foo[] = "\
> long\
> string\
> without\
> linefeeds\
> ";
>
> Is translated by the preprocessor to
>
> char foo[] = "longstringwithoutlinefeeds";
>
> is there a similar mechanism in D? Or should I do...
>
> string foo =
> "long"
> "string"
> "without"
> "linefeeds"
> ;
If I'm not mistaken, this is exactly the way to do it.
A side note - Ds CTFE is quite good, so you can usually build up strings at compile-time using regular functions.
|
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Carter | John Carter: > is there a similar mechanism in D? Or should I do... > > string foo = > "long" > "string" > "without" > "linefeeds" > ; Genrally you should do: string foo = "long" ~ "string" ~ "without" ~ "linefeeds"; See also: http://d.puremagic.com/issues/show_bug.cgi?id=3827 You could also write a string with newlines and then remove them at compile-time with string functions. Bye, bearophile |
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Monday, 23 September 2013 at 09:42:59 UTC, bearophile wrote:
> John Carter:
>
>> is there a similar mechanism in D? Or should I do...
>>
>> string foo =
>> "long"
>> "string"
>> "without"
>> "linefeeds"
>> ;
>
> Genrally you should do:
>
>
> string foo = "long" ~
> "string" ~
> "without" ~
> "linefeeds";
>
> See also:
> http://d.puremagic.com/issues/show_bug.cgi?id=3827
>
> You could also write a string with newlines and then remove them at compile-time with string functions.
>
> Bye,
> bearophile
Isn't "some" "string" replaced with "somestring" early on?
|
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | simendsjo:
> Isn't "some" "string" replaced with "somestring" early on?
Yes, unfortunately. And it's something Walter agreed with me to kill, but nothing has happened...
Bye,
bearophile
|
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Monday, 23 September 2013 at 11:10:07 UTC, bearophile wrote:
> simendsjo:
>
>> Isn't "some" "string" replaced with "somestring" early on?
>
> Yes, unfortunately. And it's something Walter agreed with me to kill, but nothing has happened...
>
> Bye,
> bearophile
Rationale / link to discussion? I use it extensively.
|
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | Dicebot: > Rationale / link to discussion? I use it extensively. http://d.puremagic.com/issues/show_bug.cgi?id=3827 Bye, bearophile |
September 23, 2013 Re: Multiline String Literals without linefeeds? | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Monday, 23 September 2013 at 11:30:18 UTC, bearophile wrote:
> Dicebot:
>
>> Rationale / link to discussion? I use it extensively.
>
> http://d.puremagic.com/issues/show_bug.cgi?id=3827
>
> Bye,
> bearophile
Thanks.
Well, then we will have _guaranteed_ const-folding of adjacent concatenated string literals, I will be perfectly fine with this but it does not seem to be the case right now.
|
Copyright © 1999-2021 by the D Language Foundation