forked from OSchip/llvm-project
47 lines
1.8 KiB
ReStructuredText
47 lines
1.8 KiB
ReStructuredText
.. title:: clang-tidy - modernize-raw-string-literal
|
|
|
|
modernize-raw-string-literal
|
|
============================
|
|
|
|
This check selectively replaces string literals containing escaped characters
|
|
with raw string literals.
|
|
|
|
Example:
|
|
|
|
.. code-blocK:: c++
|
|
|
|
const char *const Quotes{"embedded \"quotes\""};
|
|
const char *const Paragraph{"Line one.\nLine two.\nLine three.\n"};
|
|
const char *const SingleLine{"Single line.\n"};
|
|
const char *const TrailingSpace{"Look here -> \n"};
|
|
const char *const Tab{"One\tTwo\n"};
|
|
const char *const Bell{"Hello!\a And welcome!"};
|
|
const char *const Path{"C:\\Program Files\\Vendor\\Application.exe"};
|
|
const char *const RegEx{"\\w\\([a-z]\\)"};
|
|
|
|
becomes
|
|
|
|
.. code-block:: c++
|
|
|
|
const char *const Quotes{R"(embedded "quotes")"};
|
|
const char *const Paragraph{"Line one.\nLine two.\nLine three.\n"};
|
|
const char *const SingleLine{"Single line.\n"};
|
|
const char *const TrailingSpace{"Look here -> \n"};
|
|
const char *const Tab{"One\tTwo\n"};
|
|
const char *const Bell{"Hello!\a And welcome!"};
|
|
const char *const Path{R"(C:\Program Files\Vendor\Application.exe)"};
|
|
const char *const RegEx{R"(\w\([a-z]\))"};
|
|
|
|
The presence of any of the following escapes can cause the string to be
|
|
converted to a raw string literal: ``\\``, ``\'``, ``\"``, ``\?``,
|
|
and octal or hexadecimal escapes for printable ASCII characters.
|
|
|
|
A string literal containing only escaped newlines is a common way of
|
|
writing lines of text output. Introducing physical newlines with raw
|
|
string literals in this case is likely to impede readability. These
|
|
string literals are left unchanged.
|
|
|
|
An escaped horizontal tab, form feed, or vertical tab prevents the string
|
|
literal from being converted. The presence of a horizontal tab, form feed or
|
|
vertical tab in source code is not visually obvious.
|