vak: (Default)
[personal profile] vak
Еще одна новомодная фича Си++, которую я пропустил: сырые строки. Обычные строки начинаются с " и заканчиваются ", а внутри могут находиться хитрые последовательности типа \n или \u89ab. Начиная с C++11, появились сырые строки: они начинаются с R"( и заканчиваются )", и внутри вообще ничего не обрабатывается, а передаётся как есть.

Даже хитрее: между двойной кавычкой и скобкой можно вставлять произвольное слово от 0 до 16 символов, для прикола. Например:
#include <iostream>

int main()
{
    std::string msg = R"foobar(
// Twas bryllyg, and ye slythy toves \\
\\ Did gyre and gymble in ye wabe    //
    )foobar";

    std::cout << msg << std::endl;
    return 0;
}

Date: 2020-04-29 01:50 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
У*бал бы модников за эту хрень.

Date: 2020-04-29 02:52 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
По крайней мере для Regex-ов стоит использовать

Date: 2020-04-29 03:17 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Возможно, но хуже для всех тулзов, работающих с текстом, т.к. в очередной раз нужен препроцессор и фронт-энд компилятора чтобы эту абракадабру разобрать без ошибок.

Date: 2020-04-29 06:38 (UTC)
vit_r: default (Default)
From: [personal profile] vit_r
Если не надо искать в них ошибки, то стоит.

Date: 2020-04-29 17:36 (UTC)
fizzik: (Default)
From: [personal profile] fizzik
+1!

Date: 2020-04-29 02:05 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Ну вот, удобно же!

Date: 2020-04-30 07:11 (UTC)
dluciv: (Default)
From: [personal profile] dluciv
Не для прикола, а чтобы задать конец строки. HereDoc же.

Или я неправ?..