Ежедневный бит (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.