PR libstdc++/79162 Fix std::string regression due to LWG 2946 (old ABI)

PR libstdc++/79162
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_If_sv): Remove from the overload set when the
	argument is derived from basic_string.

From-SVN: r253038
This commit is contained in:
Jonathan Wakely 2017-09-20 23:26:19 +01:00 committed by Jonathan Wakely
parent 094932a3c3
commit ae6af5239b
2 changed files with 6 additions and 0 deletions

View File

@ -1,5 +1,10 @@
2017-09-20 Jonathan Wakely <jwakely@redhat.com> 2017-09-20 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/79162
* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
(basic_string::_If_sv): Remove from the overload set when the
argument is derived from basic_string.
PR libstdc++/79162 PR libstdc++/79162
* include/bits/basic_string.h (basic_string::_If_sv): Remove from the * include/bits/basic_string.h (basic_string::_If_sv): Remove from the
overload set when the argument is derived from basic_string. overload set when the argument is derived from basic_string.

View File

@ -3439,6 +3439,7 @@ _GLIBCXX_END_NAMESPACE_CXX11
template<typename _Tp, typename _Res> template<typename _Tp, typename _Res>
using _If_sv = enable_if_t< using _If_sv = enable_if_t<
__and_<is_convertible<const _Tp&, __sv_type>, __and_<is_convertible<const _Tp&, __sv_type>,
__not_<is_convertible<const _Tp*, const basic_string*>>,
__not_<is_convertible<const _Tp&, const _CharT*>>>::value, __not_<is_convertible<const _Tp&, const _CharT*>>>::value,
_Res>; _Res>;