aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/std/array
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2017-03-22 15:58:35 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2017-03-22 15:58:35 +0000
commitaf181c91a9f33ecf355065bcfbfce66c9fb1e111 (patch)
treef68fdc2fff16e5983b80b5ad47b59ae9f3639c9c /libstdc++-v3/include/std/array
parent918b6c9ec22543ced2487fd8780049f595a94b38 (diff)
downloadgcc-af181c91a9f33ecf355065bcfbfce66c9fb1e111.zip
gcc-af181c91a9f33ecf355065bcfbfce66c9fb1e111.tar.gz
gcc-af181c91a9f33ecf355065bcfbfce66c9fb1e111.tar.bz2
Add deduction guides for C++17 (P0433R2, partial)
* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction guides for C++17. * include/bits/std_function.h (function): Likewise. * include/bits/stl_pair.h (pair): Likewise. * include/debug/array (__gnu_debug::array): Likewise. * include/std/array (array): Likewise. * include/std/functional (make_default_searcher) (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher): Remove generator functions. * include/std/tuple (tuple): Add deduction guides. * include/std/valarray (valarray): Likewise. * testsuite/20_util/function_objects/searchers.cc: Adjust to use class template argument deduction instead of generator functions. * testsuite/20_util/function/cons/deduction.cc: New test. * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ... * testsuite/20_util/optional/cons/deduction.cc: ... here. * testsuite/20_util/pair/cons/deduction.cc: New test. * testsuite/20_util/shared_ptr/cons/deduction.cc: New test. * testsuite/20_util/tuple/cons/deduction.cc: New test. * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error. * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test. * testsuite/20_util/weak_ptr/cons/deduction.cc: New test. * testsuite/23_containers/array/cons/deduction.cc: New test. * testsuite/23_containers/array/cons/deduction_neg.cc: New test. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust dg-error. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: Likewise. * testsuite/26_numerics/valarray/deduction.cc: New test. * testsuite/30_threads/lock_guard/cons/deduction.cc: New test. * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test. * testsuite/30_threads/unique_lock/cons/deduction.cc: New test. From-SVN: r246389
Diffstat (limited to 'libstdc++-v3/include/std/array')
-rw-r--r--libstdc++-v3/include/std/array7
1 files changed, 7 insertions, 0 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