«Строковый литерал C++11» относится к функции, представленной в языке программирования C++, начиная со стандарта C++11. Необработанные строковые литералы позволяют определять строковые литералы, которые сохраняют точные символы внутри литерала, включая пробельные символы и escape-последовательности, без необходимости экранирования вручную.
Вот несколько методов и примеров, связанных с необработанными строковыми литералами C++11:
-
Основной синтаксис.
Основной синтаксис необработанного строкового литерала в C++11 следующий:R"delimiter(raw_characters)delimiter" -
Разделитель:
Разделителем может быть любая последовательность символов, но он не должен появляться в разделе raw_characters. Он используется для обозначения начала и конца необработанного строкового литерала. -
Пример:
Вот пример, демонстрирующий использование необработанного строкового литерала:#include <iostream> int main() { const char* message = R"foo(This is a raw string literal \n with special characters.)foo"; std::cout << message << std::endl; return 0; } -
Сохранение пробелов и escape-последовательностей.
Необработанные строковые литералы сохраняют точные символы внутри литерала, включая символы пробелов и escape-последовательности. Это полезно при работе со строками, содержащими отступы, разрывы строк или обратную косую черту. -
Внедрение разделителей в литерал:
Если сам раздел raw_characters содержит последовательность разделителей, ее можно экранировать, дублируя разделитель. Например:const char* example = R"delimiter(This is an example of using )" within the literal.)delimiter"; -
Многострочные строки.
Необработанные строковые литералы особенно полезны для определения многострочных строк без явных символов продолжения строки. Символы новой строки сохраняются в строке.