从 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
?