Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #71490
| From | boltar@nowhere.org |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: C++ preprocessor and multi-line string literals |
| Date | 2020-01-21 16:43 +0000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <r079n4$1i90$1@gioia.aioe.org> (permalink) |
| References | <qvpvvf$h2p$1@dont-email.me> <r04bcm$32j$2@adenine.netfront.net> <r04nfl$9c7$1@news.albasani.net> <r06cfk$27iu$1@adenine.netfront.net> |
On Tue, 21 Jan 2020 08:24:22 -0000 (UTC)
Juha Nieminen <nospam@thanks.invalid> wrote:
>Bonita Montero <Bonita.Montero@gmail.com> wrote:
>>> How about the other way around? Is this valid C++ or not?
>>>
>>> //------------------------------
>>> #include <iostream>
>>>
>>> #define TEST R"#(line1
>>> line2
>>> line3
>>> )#"
>>>
>>> int main()
>>> {
>>> std::cout << TEST;
>>> }
>>> //------------------------------
>>
>> Doesn't matter if this is valid or not because no one does
>> such stupid things.
>
>I am tempted to use less-than-pleasant words as a response, but I think
>I will abstain. Instead, I will present an actual real-life situation where
>such a thing is useful.
>
>When programming with something that uses OpenGL, and thus GLSL for shaders,
>the shaders are their own programming language inside strings. You could have
>these GLSL sources in separate files, or you could have them as string literals
>
>inside your program. The advantage of having them as string literals is that
>you don't need to include extraneous files in your project (which may even be
>easily modified by somebody), and you can build your strings from parts.
>
>If there's some common GLSL code that could be useful in several shaders, you
>can create string literales by concatenating separate ones. One easy way to do
>that is to use macros for the string literals containing common code.
>
>So you could have something like:
>
>#define GLSL_COMMON_FUNC R"#(
>float func(float) {
> ... whatever ...
>}
>)#"
Not with Clang you can't:
t.c:3:27: warning: missing terminating '"' character [-Winvalid-pp-token]
#define GLSL_COMMON_FUNC R"#(
^
t.c:7:1: error: expected identifier or '('
)#"
^
t.c:7:3: warning: missing terminating '"' character [-Winvalid-pp-token]
)#"
Is this a gcc extension?
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
C++ preprocessor and multi-line string literals Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-16 17:37 +0200
Re: C++ preprocessor and multi-line string literals Öö Tiib <ootiib@hot.ee> - 2020-01-16 09:46 -0800
Re: C++ preprocessor and multi-line string literals Manfred <noname@add.invalid> - 2020-01-16 22:49 +0100
Re: C++ preprocessor and multi-line string literals Öö Tiib <ootiib@hot.ee> - 2020-01-16 14:43 -0800
Re: C++ preprocessor and multi-line string literals Manfred <invalid@add.invalid> - 2020-01-17 01:24 +0100
Re: C++ preprocessor and multi-line string literals Öö Tiib <ootiib@hot.ee> - 2020-01-16 16:38 -0800
Re: C++ preprocessor and multi-line string literals Manfred <invalid@add.invalid> - 2020-01-17 03:27 +0100
Re: C++ preprocessor and multi-line string literals legalize+jeeves@mail.xmission.com (Richard) - 2020-01-16 20:07 +0000
Re: C++ preprocessor and multi-line string literals Juha Nieminen <nospam@thanks.invalid> - 2020-01-20 13:53 +0000
Re: C++ preprocessor and multi-line string literals Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-20 18:31 +0200
Re: C++ preprocessor and multi-line string literals Bonita Montero <Bonita.Montero@gmail.com> - 2020-01-20 18:19 +0100
Re: C++ preprocessor and multi-line string literals Juha Nieminen <nospam@thanks.invalid> - 2020-01-21 08:24 +0000
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-21 16:43 +0000
Re: C++ preprocessor and multi-line string literals Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-21 19:25 +0200
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-22 09:58 +0000
Re: C++ preprocessor and multi-line string literals guinness.tony@gmail.com - 2020-01-22 02:11 -0800
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-22 10:24 +0000
Re: C++ preprocessor and multi-line string literals James Kuyper <jameskuyper@alumni.caltech.edu> - 2020-01-23 22:25 -0500
Re: C++ preprocessor and multi-line string literals Paavo Helde <myfirstname@osa.pri.ee> - 2020-01-22 13:28 +0200
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-22 12:07 +0000
Re: C++ preprocessor and multi-line string literals Öö Tiib <ootiib@hot.ee> - 2020-01-22 05:33 -0800
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-22 16:03 +0000
Re: C++ preprocessor and multi-line string literals Öö Tiib <ootiib@hot.ee> - 2020-01-22 10:50 -0800
Re: C++ preprocessor and multi-line string literals boltar@nowhere.org - 2020-01-23 09:22 +0000
Re: C++ preprocessor and multi-line string literals Manfred <noname@add.invalid> - 2020-01-22 18:59 +0100
Re: C++ preprocessor and multi-line string literals Juha Nieminen <nospam@thanks.invalid> - 2020-01-22 12:03 +0000
csiph-web