从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 +可以使代码正常工作。