由于C++ 1z,我们有std::string_view
,这是一个连续字符序列的轻量视图,避免了不必要的数据复制。现在通常不推荐使用const std::string&
参数,而是使用std::string_view
。为什么不支持连接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 +'来使代码工作并不需要太多。 – NathanOliver
刚刚发现这个:https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/1RcShRhrmRc – NathanOliver
我还想念的是std :: basic_string的成员函数,它返回std ::子字符串的basic_string_view(类似于“substr”成员函数),可能名为“substr_view”。 – CAF