在C++ 17中没有从std :: string到std :: string_view的隐式转换(在std :: experimental :: basic_string_view中)

Gre*_*ape 16 c++ c++17

我的问题是关于C++ 17:http://en.cppreference.com/w/cpp/string/basic_string_view/basic_string_view

从std :: basic_string到std :: basic_string_view的隐式转换的警告是什么,它不包含在后者的接口中?

我相信这会大大改善这门课程.特别是比较运算符族,也不接受std :: string既不是lhs也不是rhs.

库基础知识TS规范中有这样的转换:http://en.cppreference.com/w/cpp/experimental/basic_string_view/basic_string_view

这个问题是为什么它被删除.或者更不被采纳.

Nic*_*las 17

basic_string_view被认为是较低级别的.它是字符串容器的提供者,负责提供隐式转换string_view.如果你有自己的字符串类型,那么你可能会给它一个可能explicit operator string_view()重载来执行隐式转换.

因此,它决定(PDF)basic_string将提供转换basic_string_view.原始的Library Fundamentals版本进行了隐式转换basic_string_view,因为TS通常是一个扩展.如果没有有效地分配该类型,它不会影响现有类型.