EricWF added a comment. Why did you remove the `_VSTD` qualified on most of the `__str_find` function calls? I think that should be a qualified call because a UDT traits type can hijack overload resolution. (Although __str_find* is a reserved name).
I'm happy with the changes to `<string>`. Moving onto `<string_view>` ================ Comment at: include/string:797 @@ +796,3 @@ + basic_string(__self_view __sv); + _LIBCPP_INLINE_VISIBILITY + basic_string(__self_view __sv, const allocator_type& __a); ---------------- indent. ================ Comment at: include/string:997 @@ -1589,1 +996,3 @@ + basic_string& insert(size_type __pos1, __self_view __sv) { return insert(__pos1, __sv.data(), __sv.size()); } + basic_string& insert(size_type __pos1, __self_view __sv, size_type __pos2, size_type __n=npos); basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos); ---------------- Missing _LIBCPP_INLINE_VISIBILITY ================ Comment at: include/string:1038 @@ -1626,2 +1037,3 @@ basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos); + basic_string& replace(size_type __pos1, size_type __n1, __self_view __sv, size_type __pos2, size_type __n2=npos); basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2); ---------------- Missing _LIBCPP_INLINE_VISIBILITY ================ Comment at: include/string:1157 @@ -1726,2 +1156,3 @@ int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const; + int compare(size_type __pos1, size_type __n1, __self_view __sv, size_type __pos2, size_type __n2=npos) const; int compare(const value_type* __s) const _NOEXCEPT; ---------------- Missing _LIBCPP_INLINE_VISIBILITY ================ Comment at: include/string:2374 @@ -2898,1 +2373,3 @@ basic_string<_CharT, _Traits, _Allocator>& +basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, __self_view __sv, + size_type __pos2, size_type __n) ---------------- Missing _LIBCPP_INLINE_VISIBILITY ================ Comment at: include/string:2384 @@ -2899,1 +2383,3 @@ +template <class _CharT, class _Traits, class _Allocator> +basic_string<_CharT, _Traits, _Allocator>& basic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s) ---------------- Missing _LIBCPP_INLINE_VISIBILITY ================ Comment at: include/string:2940 @@ -3442,3 +2939,3 @@ _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find(): received nullptr"); - return _VSTD::__str_find<value_type, size_type, traits_type, npos> + return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); ---------------- This call should be qualified. ================ Comment at: include/string:2950 @@ -3452,3 +2949,3 @@ { - return _VSTD::__str_find<value_type, size_type, traits_type, npos> + return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); ---------------- This call should be qualified. ================ Comment at: include/string:2960 @@ +2959,3 @@ +{ + return __str_find<value_type, size_type, traits_type, npos> + (data(), size(), __sv.data(), __pos, __sv.size()); ---------------- This call should be qualified. ================ Comment at: include/string:2980 @@ -3472,3 +2979,3 @@ { - return _VSTD::__str_find<value_type, size_type, traits_type, npos> + return __str_find<value_type, size_type, traits_type, npos> (data(), size(), __c, __pos); ---------------- This call should be qualified. ================ Comment at: include/string:2993 @@ -3485,3 +2992,3 @@ _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::rfind(): received nullptr"); - return _VSTD::__str_rfind<value_type, size_type, traits_type, npos> + return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __s, __pos, __n); ---------------- This call should be qualified. ================ Comment at: include/string:3003 @@ -3495,3 +3002,3 @@ { - return _VSTD::__str_rfind<value_type, size_type, traits_type, npos> + return __str_rfind<value_type, size_type, traits_type, npos> (data(), size(), __str.data(), __pos, __str.size()); ---------------- This call should be qualified. https://reviews.llvm.org/D21459 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits