从C ++ 17开始,我们可以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)
为什么要为串联不支持std::string
和std::string_view
标准?
operator +
可以使代码正常工作。