由於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