std::literals::string_view_literals::operator""sv
来自cppreference.com
< cpp | string | basic string view
定义于头文件 <string_view>
|
||
constexpr std::string_view operator "" sv(const char* str, std::size_t len) noexcept; |
(1) | (C++17 起) |
constexpr std::u8string_view operator "" sv(const char8_t* str, std::size_t len) noexcept; |
(2) | (C++20 起) |
constexpr std::u16string_view operator "" sv(const char16_t* str, std::size_t len) noexcept; |
(3) | (C++17 起) |
constexpr std::u32string_view operator "" sv(const char32_t* str, std::size_t len) noexcept; |
(4) | (C++17 起) |
constexpr std::wstring_view operator "" sv(const wchar_t* str, std::size_t len) noexcept; |
(5) | (C++17 起) |
从字符数组字面量组成 string_view 。
1) 返回 std::string_view{str, len}
2) 返回 std::u8string_view{str, len}
3) 返回 std::u16string_view{str, len}
4) 返回 std::u32string_view{str, len}
5) 返回 std::wstring_view{str, len}
参数
str | - | 指向无修饰字符数组字面量起始的指针 |
len | - | 无修饰字符数组字面量的长度 |
返回值
string_view
字面量。
注解
这些运算符声明于命名空间 std::literals::string_view_literals
, literals
和 string_view_literals
均为内联命名空间。能以 using namespace std::literals 、 using namespace std::string_view_literals 及 using namespace std::literals::string_view_literals 取得对这些运算符的访问。
示例
运行此代码
#include <string_view> #include <iostream> int main() { using namespace std::literals; std::string_view s1 = "abc\0\0def"; std::string_view s2 = "abc\0\0def"sv; std::cout << "s1: " << s1.size() << " \"" << s1 << "\"\n"; std::cout << "s2: " << s2.size() << " \"" << s2 << "\"\n"; std::cout << "narrow string literal"sv.size() << '\n' << L"wide string literal"sv.size() << '\n' << R"(raw string literal)"sv.size() << '\n'; }
可能的输出:
s1: 3 "abc" s2: 8 "abc^@^@def" 21 19 18
参阅
构造 basic_string_view (公开成员函数) |