aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/std')
-rw-r--r--libstdc++-v3/include/std/array7
-rw-r--r--libstdc++-v3/include/std/functional30
-rw-r--r--libstdc++-v3/include/std/tuple13
-rw-r--r--libstdc++-v3/include/std/valarray5
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