Ежедневный бит (e) C++ # 165, поддержка C++ 14/C++ 20 для стандартных строковых литералов.

Строковые литералы в C++ — это неизменяемые массивы символов (для совместимости с C).

Это может быть неудобно при работе с универсальными функциями или при использовании auto.

Начиная с C++14, стандартная библиотека обеспечивает поддержку стандартных строковых литералов, то есть литералов типа std::string и его вариантов.

#include <string>
using namespace std::string_literals;

auto s1 = "Hello World!"s;
// decltype(s1) == std::string

auto s2 = L"😀"s;
// decltype(s2) == std::wstring

// utf8 string literal since C++20
auto s3 = u8"🙃"s; 
// decltype(s3) == std::u8string

auto s4 = u"😜"s;
// decltype(s4) == std::u16string

auto s5 = U"🤔"s;
// decltype(s5) == std::u32string

Откройте пример в Compiler Explorer.