最佳答案
从 C + + 17开始,我们使用了 std::string_view,这是一个轻量级视图,可以将字符串连成一个序列,从而避免不必要的数据复制。现在通常建议使用 std::string_view,而不是使用 const std::string&参数。
However, one quickly finds out that switching from const std::string& to std::string_view breaks code that uses string concatenation as there is no support for concatenating std::string and 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?