diff options
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r-- | libstdc++-v3/include/std/array | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/std/functional | 30 | ||||
-rw-r--r-- | libstdc++-v3/include/std/tuple | 13 | ||||
-rw-r--r-- | libstdc++-v3/include/std/valarray | 5 |
4 files changed, 25 insertions, 30 deletions
diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array index 261f2af..1c7d6dc 100644 --- a/libstdc++-v3/include/std/array +++ b/libstdc++-v3/include/std/array @@ -239,6 +239,13 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { return _AT_Type::_S_ptr(_M_elems); } }; +#if __cpp_deduction_guides >= 201606 + template<typename _Tp, typename... _Up> + array(_Tp, _Up...) + -> array<enable_if_t<(is_same_v<_Tp, _Up> && ...), _Tp>, + 1 + sizeof...(_Up)>; +#endif + // Array comparisons. template<typename _Tp, std::size_t _Nm> inline bool diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index ae5bc0a..3db10ca 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -1175,36 +1175,6 @@ _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) _RAIter _M_pat_end; }; - /// Generator function for default_searcher - template<typename _ForwardIterator, - typename _BinaryPredicate = std::equal_to<>> - inline default_searcher<_ForwardIterator, _BinaryPredicate> - make_default_searcher(_ForwardIterator __pat_first, - _ForwardIterator __pat_last, - _BinaryPredicate __pred = _BinaryPredicate()) - { return { __pat_first, __pat_last, __pred }; } - - /// Generator function for boyer_moore_searcher - template<typename _RAIter, typename _Hash - = std::hash<typename std::iterator_traits<_RAIter>::value_type>, - typename _BinaryPredicate = equal_to<>> - inline boyer_moore_searcher<_RAIter, _Hash, _BinaryPredicate> - make_boyer_moore_searcher(_RAIter __pat_first, _RAIter __pat_last, - _Hash __hf = _Hash(), - _BinaryPredicate __pred = _BinaryPredicate()) - { return { __pat_first, __pat_last, std::move(__hf), std::move(__pred) }; } - - /// Generator function for boyer_moore_horspool_searcher - template<typename _RAIter, typename _Hash - = std::hash<typename std::iterator_traits<_RAIter>::value_type>, - typename _BinaryPredicate = equal_to<>> - inline boyer_moore_horspool_searcher<_RAIter, _Hash, _BinaryPredicate> - make_boyer_moore_horspool_searcher(_RAIter __pat_first, _RAIter __pat_last, - _Hash __hf = _Hash(), - _BinaryPredicate __pred - = _BinaryPredicate()) - { return { __pat_first, __pat_last, std::move(__hf), std::move(__pred) }; } - template<typename _RAIter, typename _Hash, typename _BinaryPredicate> boyer_moore_searcher<_RAIter, _Hash, _BinaryPredicate>:: boyer_moore_searcher(_RAIter __pat, _RAIter __pat_end, diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index f53daf1..ae495d9 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -872,6 +872,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { _Inherited::_M_swap(__in); } }; +#if __cpp_deduction_guides >= 201606 + template<typename... _UTypes> + tuple(_UTypes...) -> tuple<_UTypes...>; + template<typename _T1, typename _T2> + tuple(pair<_T1, _T2>) -> tuple<_T1, _T2>; + template<typename _Alloc, typename... _UTypes> + tuple(allocator_arg_t, _Alloc, _UTypes...) -> tuple<_UTypes...>; + template<typename _Alloc, typename _T1, typename _T2> + tuple(allocator_arg_t, _Alloc, pair<_T1, _T2>) -> tuple<_T1, _T2>; + template<typename _Alloc, typename... _UTypes> + tuple(allocator_arg_t, _Alloc, tuple<_UTypes...>) -> tuple<_UTypes...>; +#endif + // Explicit specialization, zero-element tuple. template<> class tuple<> diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray index ad50650..2dc6e42 100644 --- a/libstdc++-v3/include/std/valarray +++ b/libstdc++-v3/include/std/valarray @@ -563,6 +563,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION friend class _Array<_Tp>; }; +#if __cpp_deduction_guides >= 201606 + template<typename _Tp, size_t _Nm> + valarray(const _Tp(&)[_Nm], size_t) -> valarray<_Tp>; +#endif + template<typename _Tp> inline const _Tp& valarray<_Tp>::operator[](size_t __i) const |