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