ech*_*Lee 7 c++ string implicit-conversion string-view
void Foo1(string_view view) {
...
}
string str = "one two three";
Foo1("one two three"); // Implicitly convert char* to string_view
Foo1(str);
Run Code Online (Sandbox Code Playgroud)
我想知道哪个构造函数将 char* 隐式转换为 string_view ,哪个构造函数将字符串隐式转换为 string_view ?
我知道构造函数 (4) 将 const char* 转换为 string_view 但我传递的是 char*。
son*_*yao 13
std::string_view有一个非explicit 转换构造函数Take const char*,它支持从const char*到 的隐式转换std::string_view。
constexpr basic_string_view(const CharT* s);
当你说:
但我通过的是
char*。
您实际上传递的是一个字符串文字(即"one two three"),其类型为const char[14](包括空终止符'\0'),它可能会衰减为const char*。
并且std::string有一个非explicit 转换运算符,支持从std::string到 的隐式转换std::string_view。
constexpr operator std::basic_string_view<CharT, Traits>() const noexcept;
| 归档时间: |
|
| 查看次数: |
26808 次 |
| 最近记录: |