最佳答案
从 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
?