gcc/libstdc++-v3/testsuite/20_util
Jason Merrill 20316b9b2e Constrain std::variant constructor for class template argument deduction
2017-07-14  Jason Merrill  <jason@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (variant::variant(_Tp&&)): Constrain to remove
	the constructor for empty variants from the candidate functions
	during class template argument deduction.
	* testsuite/20_util/variant/deduction.cc: New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r250213
2017-07-14 20:13:49 +01:00
..
add_const Update copyright years. 2017-01-01 13:07:43 +01:00
add_cv Update copyright years. 2017-01-01 13:07:43 +01:00
add_lvalue_reference Update copyright years. 2017-01-01 13:07:43 +01:00
add_pointer PR78361 recognise noexcept functions as referenceable 2017-01-13 12:18:42 +00:00
add_rvalue_reference Update copyright years. 2017-01-01 13:07:43 +01:00
add_volatile Update copyright years. 2017-01-01 13:07:43 +01:00
addressof Update copyright years. 2017-01-01 13:07:43 +01:00
align Update copyright years. 2017-01-01 13:07:43 +01:00
aligned_storage Update copyright years. 2017-01-01 13:07:43 +01:00
aligned_union Update copyright years. 2017-01-01 13:07:43 +01:00
alignment_of Update copyright years. 2017-01-01 13:07:43 +01:00
allocator Update copyright years. 2017-01-01 13:07:43 +01:00
allocator_traits PR72792 detect allocator pointer types without invalid rebinding 2017-01-20 12:03:36 +00:00
any Implement LWG 2857, {variant,optional,any}::emplace should return the constructed value. 2017-03-16 01:13:20 +02:00
as_const Update copyright years. 2017-01-01 13:07:43 +01:00
auto_ptr Update copyright years. 2017-01-01 13:07:43 +01:00
bad_function_call Update copyright years. 2017-01-01 13:07:43 +01:00
bind PR 79798 Fix incorrect use of std::result_of in std::bind 2017-03-02 03:43:36 +00:00
bool_constant Update copyright years. 2017-01-01 13:07:43 +01:00
common_type/requirements Update copyright years. 2017-01-01 13:07:43 +01:00
conditional/requirements Update copyright years. 2017-01-01 13:07:43 +01:00
decay/requirements Update copyright years. 2017-01-01 13:07:43 +01:00
declval/requirements Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
default_delete Avoid deprecated warnings about std::auto_ptr in library headers 2017-04-21 14:08:51 +01:00
duration C++17 GB50 resolution (P0505R0) 2017-02-19 16:04:35 +00:00
duration_cast Update copyright years. 2017-01-01 13:07:43 +01:00
enable_if/requirements Update copyright years. 2017-01-01 13:07:43 +01:00
enable_shared_from_this PR libstdc++/80229 restore support for shared_ptr<function type> 2017-03-28 08:35:04 +01:00
exchange Update copyright years. 2017-01-01 13:07:43 +01:00
extent Update copyright years. 2017-01-01 13:07:43 +01:00
forward Update copyright years. 2017-01-01 13:07:43 +01:00
function PR libstdc++/81017 add noexcept to std::function move operations 2017-06-08 15:27:45 +01:00
function_objects PR libstdc++/80478 make std::mem_fn work with noexcept functions 2017-05-18 18:32:06 +01:00
has_unique_object_representations Update copyright years. 2017-01-01 13:07:43 +01:00
has_virtual_destructor Update copyright years. 2017-01-01 13:07:43 +01:00
hash Implement LWG 2686, std::hash<error_condition>, for C++17 2017-03-23 19:40:16 +00:00
headers Update copyright years. 2017-01-01 13:07:43 +01:00
in_place Update copyright years. 2017-01-01 13:07:43 +01:00
integer_sequence Update copyright years. 2017-01-01 13:07:43 +01:00
integral_constant Update copyright years. 2017-01-01 13:07:43 +01:00
is_abstract Update copyright years. 2017-01-01 13:07:43 +01:00
is_aggregate Implement std::is_aggregate. 2017-04-03 18:57:06 +03:00
is_arithmetic Update copyright years. 2017-01-01 13:07:43 +01:00
is_array Update copyright years. 2017-01-01 13:07:43 +01:00
is_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_base_of Update copyright years. 2017-01-01 13:07:43 +01:00
is_class Update copyright years. 2017-01-01 13:07:43 +01:00
is_compound Update copyright years. 2017-01-01 13:07:43 +01:00
is_const Update copyright years. 2017-01-01 13:07:43 +01:00
is_constructible re PR c++/80812 (ICE: in build_value_init_noctor, at cp/init.c:483) 2017-06-01 14:09:41 +03:00
is_convertible Update copyright years. 2017-01-01 13:07:43 +01:00
is_copy_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_copy_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_default_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_destructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_empty Update copyright years. 2017-01-01 13:07:43 +01:00
is_enum Update copyright years. 2017-01-01 13:07:43 +01:00
is_final Update copyright years. 2017-01-01 13:07:43 +01:00
is_floating_point Update copyright years. 2017-01-01 13:07:43 +01:00
is_function Update copyright years. 2017-01-01 13:07:43 +01:00
is_fundamental Update copyright years. 2017-01-01 13:07:43 +01:00
is_implicitly_default_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_integral Update copyright years. 2017-01-01 13:07:43 +01:00
is_invocable P0604R0 add invoke_result, is_invocable etc. for C++17 2017-03-10 15:29:38 +00:00
is_literal_type Update copyright years. 2017-01-01 13:07:43 +01:00
is_lvalue_reference Update copyright years. 2017-01-01 13:07:43 +01:00
is_member_function_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
is_member_object_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
is_member_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
is_move_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_move_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_copy_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_copy_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_default_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_destructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_invocable P0604R0 add invoke_result, is_invocable etc. for C++17 2017-03-10 15:29:38 +00:00
is_nothrow_move_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_move_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_swappable Update copyright years. 2017-01-01 13:07:43 +01:00
is_nothrow_swappable_with Update copyright years. 2017-01-01 13:07:43 +01:00
is_null_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
is_object Update copyright years. 2017-01-01 13:07:43 +01:00
is_pod Update copyright years. 2017-01-01 13:07:43 +01:00
is_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
is_polymorphic Update copyright years. 2017-01-01 13:07:43 +01:00
is_reference Update copyright years. 2017-01-01 13:07:43 +01:00
is_rvalue_reference Update copyright years. 2017-01-01 13:07:43 +01:00
is_same Update copyright years. 2017-01-01 13:07:43 +01:00
is_scalar Update copyright years. 2017-01-01 13:07:43 +01:00
is_signed Update copyright years. 2017-01-01 13:07:43 +01:00
is_standard_layout Update copyright years. 2017-01-01 13:07:43 +01:00
is_swappable Update copyright years. 2017-01-01 13:07:43 +01:00
is_swappable_with Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivial Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_assignable Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_copy_assignable Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
is_trivially_copy_constructible Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
is_trivially_copyable Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_default_constructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_destructible Update copyright years. 2017-01-01 13:07:43 +01:00
is_trivially_move_assignable Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
is_trivially_move_constructible Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
is_union Update copyright years. 2017-01-01 13:07:43 +01:00
is_unsigned Update copyright years. 2017-01-01 13:07:43 +01:00
is_void Update copyright years. 2017-01-01 13:07:43 +01:00
is_volatile Update copyright years. 2017-01-01 13:07:43 +01:00
logical_traits Update copyright years. 2017-01-01 13:07:43 +01:00
make_signed/requirements Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
make_unsigned/requirements Implement new C++ intrinsics __is_assignable and __is_constructible. 2017-05-17 16:54:23 +03:00
move Update copyright years. 2017-01-01 13:07:43 +01:00
move_if_noexcept Update copyright years. 2017-01-01 13:07:43 +01:00
optional optional (_Optional_base::_M_get): Check precondition. 2017-05-16 12:54:16 +00:00
owner_less Add noexcept to shared_ptr owner comparisons (LWG 2873) 2017-06-05 10:33:19 +01:00
pair re PR libstdc++/79141 (std::pair<int,int> p = {}; fails to compile due to ambiguous overload) 2017-04-03 19:30:58 +03:00
pointer_safety Update copyright years. 2017-01-01 13:07:43 +01:00
pointer_traits PR72792 PR72793 relax requirements on rebind members 2017-01-20 02:36:16 +00:00
rank Update copyright years. 2017-01-01 13:07:43 +01:00
ratio Implement P0607R0 "Inline Variables for Standard Library" for C++17 2017-03-23 19:40:07 +00:00
raw_storage_iterator Update copyright years. 2017-01-01 13:07:43 +01:00
reference_wrapper PR libstdc++/80504 qualify calls to avoid ADL 2017-04-24 12:40:07 +01:00
remove_all_extents Update copyright years. 2017-01-01 13:07:43 +01:00
remove_const Update copyright years. 2017-01-01 13:07:43 +01:00
remove_cv Update copyright years. 2017-01-01 13:07:43 +01:00
remove_extent Update copyright years. 2017-01-01 13:07:43 +01:00
remove_pointer Update copyright years. 2017-01-01 13:07:43 +01:00
remove_reference Update copyright years. 2017-01-01 13:07:43 +01:00
remove_volatile Update copyright years. 2017-01-01 13:07:43 +01:00
result_of Update copyright years. 2017-01-01 13:07:43 +01:00
scoped_allocator Implement P0607R0 "Inline Variables for Standard Library" for C++17 2017-03-23 19:40:07 +00:00
shared_ptr Add std::get_deleter overload with correct signature 2017-06-16 16:20:14 +01:00
specialized_algorithms Fix memory leaks in libstdc++ tests 2017-07-06 13:42:51 +01:00
steady_clock Update copyright years. 2017-01-01 13:07:43 +01:00
system_clock Update copyright years. 2017-01-01 13:07:43 +01:00
time_point C++17 GB50 resolution (P0505R0) 2017-02-19 16:04:35 +00:00
time_point_cast Update copyright years. 2017-01-01 13:07:43 +01:00
tuple PR libstdc++/78939 make tuple_size<cv T> depend on tuple_size<T> 2017-05-12 15:43:11 +01:00
typeindex Update copyright years. 2017-01-01 13:07:43 +01:00
underlying_type/requirements Update copyright years. 2017-01-01 13:07:43 +01:00
unique_ptr Avoid deprecated warnings about std::auto_ptr in library headers 2017-04-21 14:08:51 +01:00
uses_allocator Implement P0607R0 "Inline Variables for Standard Library" for C++17 2017-03-23 19:40:07 +00:00
variant Constrain std::variant constructor for class template argument deduction 2017-07-14 20:13:49 +01:00
void_t Update copyright years. 2017-01-01 13:07:43 +01:00
weak_ptr Add noexcept to shared_ptr owner comparisons (LWG 2873) 2017-06-05 10:33:19 +01:00
rel_ops.cc Update copyright years. 2017-01-01 13:07:43 +01:00
temporary_buffer.cc Update copyright years. 2017-01-01 13:07:43 +01:00
variable_templates_for_traits.cc Update copyright years. 2017-01-01 13:07:43 +01:00