diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2017-09-20 23:03:37 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2017-09-20 23:03:37 +0100 |
commit | 9d2bac69bcbf4715b353c91485f0afb52513e88d (patch) | |
tree | d1699808ef9ded5e5c234221d7a5d80acb25359e | |
parent | 94c23e3960c24a3bfcfe2daf7158fb51e0aa0e22 (diff) | |
download | gcc-9d2bac69bcbf4715b353c91485f0afb52513e88d.zip gcc-9d2bac69bcbf4715b353c91485f0afb52513e88d.tar.gz gcc-9d2bac69bcbf4715b353c91485f0afb52513e88d.tar.bz2 |
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: r253035
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/basic_string.h | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ceb883e..9be1db7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,6 +1,11 @@ 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 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the overload set when the argument is derived from basic_string. * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 8a382d5..a4b81137 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -3439,6 +3439,7 @@ _GLIBCXX_END_NAMESPACE_CXX11 template<typename _Tp, typename _Res> using _If_sv = enable_if_t< __and_<is_convertible<const _Tp&, __sv_type>, + __not_<is_convertible<const _Tp*, const basic_string*>>, __not_<is_convertible<const _Tp&, const _CharT*>>>::value, _Res>; |