s3r*_*vac 47 c++ string string-view c++17
从C++ 1z开始,我们可以std::string_view轻松地查看连续的字符序列,避免不必要的数据复制.const std::string&现在经常建议使用,而不是使用参数std::string_view.
但是,很快就会发现切换const std::string&到std::string_view使用字符串连接的中断代码,因为不支持连接std::string和std::string_view:
std::string{"abc"} + std::string_view{"def"}; // ill-formed (fails to compile)
std::string_view{"abc"} + std::string{"def"}; // ill-formed (fails to compile)
Run Code Online (Sandbox Code Playgroud)
为什么不支持连接std::string和std::string_view标准?
pep*_*ppe 28
我已经提交了P2591:字符串和字符串视图的串联,链接到这个问题。本文目前的最低目标是 C++26。
vit*_*aut 21
其原因在n3512 string_ref中给出:一个字符串的非拥有引用,由Jeffrey Yasskin 修订版2:
我也省略了operator +(basic_string,basic_string_ref),因为LLVM从这个重载返回一个轻量级对象,只是懒惰地执行连接.如果我们定义这个重载,我们将很难在以后引入轻量级连接.
后来在std-proposals邮件列表中建议将这些运算符重载添加到标准中.
| 归档时间: |
|
| 查看次数: |
4035 次 |
| 最近记录: |