我的问题是关于 C++17 : http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view
从 std::basic_string 到 std::basic_string_view 的隐式转换没有包含在后者的接口(interface)中的警告是什么?
我相信它会大大提高这门课。特别是比较运算符系列,也不接受 std::string 既不是 lhs 也不是 rhs。
中有这样的转换图书馆基础 TS 规范:http://en.cppreference.com/w/cpp/experimental/basic_string_view/basic_string_view
这个问题是关于为什么它被删除的。或者说不被采纳。
最佳答案
basic_string_view
被认为是较低级别的类。字符串容器的提供者负责提供到 string_view
的隐式转换。 .如果你有自己的字符串类型,那么你可能会给它一个 explicit
operator string_view()
重载以执行隐式转换。
因此,it was decided (PDF)那basic_string
将提供到 basic_string_view
的转换.原始库基础版本将隐式转换置于 basic_string_view
,因为 TS 通常是一个扩展。如果不有效地派生该类型,它就不会影响现有类型。
关于c++ - 在 C++17 中没有从 std::string 到 std::string_view 的隐式转换(在 std::experimental::basic_string_view 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63235166/