Use existing helper for new std::string constructor
* include/bits/basic_string.h: Reuse _If_sv alias template for new constructor. From-SVN: r242453
This commit is contained in:
parent
6ae2ae3b84
commit
3663671a13
2 changed files with 10 additions and 9 deletions
|
@ -1,5 +1,8 @@
|
|||
2016-11-15 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
|
|
@ -585,6 +585,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
|
|||
{ _M_construct(__beg, __end); }
|
||||
|
||||
#if __cplusplus > 201402L
|
||||
template<typename _Tp, typename _Res>
|
||||
using _If_sv = enable_if_t<
|
||||
__and_<is_convertible<const _Tp&, __sv_type>,
|
||||
__not_<is_convertible<const _Tp&, const _CharT*>>>::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<typename _Tp, typename =
|
||||
_Require<is_convertible<_Tp, __sv_type>,
|
||||
__not_<is_convertible<const _Tp&, const _CharT*>>>>
|
||||
template<typename _Tp, typename = _If_sv<_Tp, void>>
|
||||
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<typename _Tp, typename _Res>
|
||||
using _If_sv = enable_if_t<
|
||||
__and_<is_convertible<const _Tp&, __sv_type>,
|
||||
__not_<is_convertible<const _Tp&, const _CharT*>>>::value,
|
||||
_Res>;
|
||||
|
||||
/**
|
||||
* @brief Append a range of characters from a string_view.
|
||||
* @param __sv The string_view to be appended from.
|
||||
|
|
Loading…
Add table
Reference in a new issue