我的问题是 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
这个问题是为什么它被删除了。或者更不习惯。
答案 0 :(得分:16)
basic_string_view
被视为较低级别的课程。它是字符串容器的提供者,负责向string_view
提供隐式转换。如果您有自己的字符串类型,那么您可能会给它一个可能explicit
operator string_view()
重载来执行隐式转换。
因此basic_string
basic_string_view
将basic_string_view
转换为$arr = [
0 => 'value1',
1 => 'value2',
2 => 'value3'
];
。原始的Library Fundamentals版本将隐式转换放在DB::table('users')->select('value1', 'value2', 'value3')
上,因为TS通常是扩展名。如果没有有效地分析该类型,它就不会影响现有类型。