在 C++17 中没有从 std::string 到 std::string_view 的隐式转换(在 std::experimental::basic_string_view 中)
No implicit conversion from std::string to std::string_view in C++17 (was in std::experimental::basic_string_view)
我的问题是关于 C++17:http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view
从 std::basic_string 到 std::basic_string_view 的隐式转换没有包含在后者的接口中,有什么注意事项?
我相信它会大大改善 class。特别是比较运算符系列,也不接受 std::string 作为 lhs 和 rhs.
library fundamentals TS规范中有这样的转换:http://en.cppreference.com/w/cpp/experimental/basic_string_view/basic_string_view
这个问题是关于它被删除的原因。或者更确切地说没有被采纳。
basic_string_view
被认为是较低级别class。字符串容器的提供者负责提供到 string_view
的隐式转换。如果你有自己的字符串类型,那么你可以给它一个可能的 explicit
operator string_view()
重载来执行隐式转换。
因此,it was decided (PDF) basic_string
将提供到 basic_string_view
的转换。最初的 Library Fundamentals 版本将隐式转换放在 basic_string_view
上,因为 TS 通常是一个扩展。如果不有效地分叉该类型,它就不会影响现有类型。
我的问题是关于 C++17:http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view
从 std::basic_string 到 std::basic_string_view 的隐式转换没有包含在后者的接口中,有什么注意事项?
我相信它会大大改善 class。特别是比较运算符系列,也不接受 std::string 作为 lhs 和 rhs.
library fundamentals TS规范中有这样的转换:http://en.cppreference.com/w/cpp/experimental/basic_string_view/basic_string_view
这个问题是关于它被删除的原因。或者更确切地说没有被采纳。
basic_string_view
被认为是较低级别class。字符串容器的提供者负责提供到 string_view
的隐式转换。如果你有自己的字符串类型,那么你可以给它一个可能的 explicit
operator string_view()
重载来执行隐式转换。
因此,it was decided (PDF) basic_string
将提供到 basic_string_view
的转换。最初的 Library Fundamentals 版本将隐式转换放在 basic_string_view
上,因为 TS 通常是一个扩展。如果不有效地分叉该类型,它就不会影响现有类型。