From 3663671a13e12efe283d1b04df5416cedb796e86 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 15 Nov 2016 19:32:52 +0000 Subject: [PATCH] Use existing helper for new std::string constructor * include/bits/basic_string.h: Reuse _If_sv alias template for new constructor. From-SVN: r242453 --- libstdc++-v3/ChangeLog | 3 +++ libstdc++-v3/include/bits/basic_string.h | 16 +++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 6bf1ecbcf0e..4bba6a4e105 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2016-11-15 Jonathan Wakely + * include/bits/basic_string.h: Reuse _If_sv alias template for new + constructor. + * doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries for 2742 and 2748. * doc/html/*: Regenerate. diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 943e88d8722..9af7bfb66f9 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -585,6 +585,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 { _M_construct(__beg, __end); } #if __cplusplus > 201402L + template + using _If_sv = enable_if_t< + __and_, + __not_>>::value, + _Res>; + /** * @brief Construct string from a substring of a string_view. * @param __t Source string view. @@ -592,9 +598,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 * @param __n The number of characters to copy from __t. * @param __a Allocator to use. */ - template, - __not_>>> + template> basic_string(const _Tp& __t, size_type __pos, size_type __n, const _Alloc& __a = _Alloc()) : basic_string(__sv_type(__t).substr(__pos, __n), __a) { } @@ -1252,12 +1256,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 append(__sv_type __sv) { return this->append(__sv.data(), __sv.size()); } - template - using _If_sv = enable_if_t< - __and_, - __not_>>::value, - _Res>; - /** * @brief Append a range of characters from a string_view. * @param __sv The string_view to be appended from. -- 2.30.2