gcc/libstdc++-v3/testsuite/20_util
Jonathan Wakely c46ecb0112 libstdc++: Allow visiting inherited variants [PR 90943]
Implement the changes from P2162R2 (as a DR for C++17).

Signed-off-by: Jonathan Wakely <jwakely@redhat.com>

libstdc++-v3/ChangeLog:

	PR libstdc++/90943
	* include/std/variant (__cpp_lib_variant): Update value.
	(__detail::__variant::__as): New helpers implementing the
	as-variant exposition-only function templates.
	(visit, visit<R>): Use __as to upcast the variant parameters.
	* include/std/version (__cpp_lib_variant): Update value.
	* testsuite/20_util/variant/visit_inherited.cc: New test.
2021-10-01 20:34:48 +01:00
..
add_const Update copyright years. 2021-01-04 10:26:59 +01:00
add_cv Update copyright years. 2021-01-04 10:26:59 +01:00
add_lvalue_reference Update copyright years. 2021-01-04 10:26:59 +01:00
add_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
add_rvalue_reference Update copyright years. 2021-01-04 10:26:59 +01:00
add_volatile Update copyright years. 2021-01-04 10:26:59 +01:00
addressof libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
align Update copyright years. 2021-01-04 10:26:59 +01:00
aligned_storage Update copyright years. 2021-01-04 10:26:59 +01:00
aligned_union Update copyright years. 2021-01-04 10:26:59 +01:00
alignment_of Update copyright years. 2021-01-04 10:26:59 +01:00
allocator libstdc++: Add warnings for some C++23 deprecations 2021-06-09 10:32:43 +01:00
allocator_traits Update copyright years. 2021-01-04 10:26:59 +01:00
any libstdc++: Fix std::any constraints [PR101034] 2021-06-14 15:10:56 +01:00
as_const libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
assume_aligned Update copyright years. 2021-01-04 10:26:59 +01:00
auto_ptr Update copyright years. 2021-01-04 10:26:59 +01:00
bad_function_call Update copyright years. 2021-01-04 10:26:59 +01:00
bind libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
bool_constant libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
common_reference libstdc++: Fix common_reference for non-reference results [PR100894] 2021-06-14 21:17:53 +01:00
common_type/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
conditional/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
decay/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
declval/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
default_delete libstdc++: Fix 48631_neg test in _GLIBCXX_INLINE_VERSION mode 2021-09-28 22:09:48 +02:00
duration libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
duration_cast libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
enable_if/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
enable_shared_from_this libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
exchange libstdc++: Add conditional noexcept to std::exchange 2021-08-17 14:22:49 +01:00
extent Update copyright years. 2021-01-04 10:26:59 +01:00
forward libstdc++: Improve std::forward static assert message 2021-09-28 17:30:05 +01:00
from_chars libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
function libstdc++: Avoid a move in std::function construction (LWG 2447) 2021-08-27 00:12:54 +01:00
function_objects libstdc++: Define std::invoke_r for C++23 (P2136R3) 2021-09-02 17:48:45 +01:00
has_unique_object_representations libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
has_virtual_destructor Update copyright years. 2021-01-04 10:26:59 +01:00
hash libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
headers libstdc++: Fix tests that fail in C++98 mode 2021-05-11 17:21:08 +01:00
in_place libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
integer_comparisons Update copyright years. 2021-01-04 10:26:59 +01:00
integer_sequence Update copyright years. 2021-01-04 10:26:59 +01:00
integral_constant Update copyright years. 2021-01-04 10:26:59 +01:00
invoke_result Update copyright years. 2021-01-04 10:26:59 +01:00
is_abstract Update copyright years. 2021-01-04 10:26:59 +01:00
is_aggregate libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_arithmetic Update copyright years. 2021-01-04 10:26:59 +01:00
is_array Update copyright years. 2021-01-04 10:26:59 +01:00
is_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_base_of Update copyright years. 2021-01-04 10:26:59 +01:00
is_bounded_array Update copyright years. 2021-01-04 10:26:59 +01:00
is_class Update copyright years. 2021-01-04 10:26:59 +01:00
is_complete_or_unbounded Update copyright years. 2021-01-04 10:26:59 +01:00
is_compound Update copyright years. 2021-01-04 10:26:59 +01:00
is_const Update copyright years. 2021-01-04 10:26:59 +01:00
is_constant_evaluated Update copyright years. 2021-01-04 10:26:59 +01:00
is_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_convertible Update copyright years. 2021-01-04 10:26:59 +01:00
is_copy_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_copy_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_default_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_destructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_empty Update copyright years. 2021-01-04 10:26:59 +01:00
is_enum Update copyright years. 2021-01-04 10:26:59 +01:00
is_final Update copyright years. 2021-01-04 10:26:59 +01:00
is_floating_point Update copyright years. 2021-01-04 10:26:59 +01:00
is_function Update copyright years. 2021-01-04 10:26:59 +01:00
is_fundamental Update copyright years. 2021-01-04 10:26:59 +01:00
is_implicitly_default_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_integral Update copyright years. 2021-01-04 10:26:59 +01:00
is_invocable libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_layout_compatible libstdc++: Add std::is_layout_compatible trait for C++20 2021-08-24 16:12:44 +01:00
is_literal_type libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_lvalue_reference Update copyright years. 2021-01-04 10:26:59 +01:00
is_member_function_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
is_member_object_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
is_member_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
is_move_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_move_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_constructible libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_nothrow_convertible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_copy_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_copy_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_default_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_destructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_invocable libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_nothrow_move_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_move_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_nothrow_swappable libstdc++: Fix tests that use invalid types in ordered containers 2021-09-28 20:22:51 +01:00
is_nothrow_swappable_with libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_null_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
is_object Update copyright years. 2021-01-04 10:26:59 +01:00
is_pod Update copyright years. 2021-01-04 10:26:59 +01:00
is_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
is_pointer_interconvertible libstdc++: Add std::is_layout_compatible trait for C++20 2021-08-24 16:12:44 +01:00
is_polymorphic Update copyright years. 2021-01-04 10:26:59 +01:00
is_reference Update copyright years. 2021-01-04 10:26:59 +01:00
is_rvalue_reference Update copyright years. 2021-01-04 10:26:59 +01:00
is_same Update copyright years. 2021-01-04 10:26:59 +01:00
is_scalar Update copyright years. 2021-01-04 10:26:59 +01:00
is_scoped_enum libstdc++: Make std::is_scoped_enum work with incomplete types 2021-04-08 11:56:59 +01:00
is_signed Update copyright years. 2021-01-04 10:26:59 +01:00
is_standard_layout Update copyright years. 2021-01-04 10:26:59 +01:00
is_swappable libstdc++: Fix tests that use invalid types in ordered containers 2021-09-28 20:22:51 +01:00
is_swappable_with libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
is_trivial Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_copy_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_copy_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_copyable Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_default_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_destructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_move_assignable Update copyright years. 2021-01-04 10:26:59 +01:00
is_trivially_move_constructible Update copyright years. 2021-01-04 10:26:59 +01:00
is_unbounded_array Update copyright years. 2021-01-04 10:26:59 +01:00
is_union Update copyright years. 2021-01-04 10:26:59 +01:00
is_unsigned Update copyright years. 2021-01-04 10:26:59 +01:00
is_void Update copyright years. 2021-01-04 10:26:59 +01:00
is_volatile Update copyright years. 2021-01-04 10:26:59 +01:00
logical_traits libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
make_signed/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
make_unsigned/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
memory_resource libstdc++: Remove redundant -std=gnu++17 option from PMR tests 2021-05-10 16:22:53 +01:00
monotonic_buffer_resource libstdc++: Remove redundant -std=gnu++17 option from PMR tests 2021-05-10 16:22:53 +01:00
move Update copyright years. 2021-01-04 10:26:59 +01:00
move_if_noexcept Update copyright years. 2021-01-04 10:26:59 +01:00
nonesuch Update copyright years. 2021-01-04 10:26:59 +01:00
optional libstdc++: Reduce header dependencies on <array> and <utility> 2021-07-27 12:04:18 +01:00
owner_less Update copyright years. 2021-01-04 10:26:59 +01:00
pair libstdc++: Add testsuite proc for testing deprecated features 2021-08-03 15:30:17 +01:00
pointer_safety libstdc++: Remove garbage collection support for C++23 [P2186R2] 2021-06-22 20:58:43 +01:00
pointer_traits Update copyright years. 2021-01-04 10:26:59 +01:00
polymorphic_allocator libstdc++: Remove redundant -std=gnu++17 option from PMR tests 2021-05-10 16:22:53 +01:00
rank Update copyright years. 2021-01-04 10:26:59 +01:00
ratio c++: Don't hide narrowing errors in system headers 2021-07-16 09:28:37 -04:00
raw_storage_iterator Update copyright years. 2021-01-04 10:26:59 +01:00
reference_wrapper libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
remove_all_extents Update copyright years. 2021-01-04 10:26:59 +01:00
remove_const Update copyright years. 2021-01-04 10:26:59 +01:00
remove_cv Update copyright years. 2021-01-04 10:26:59 +01:00
remove_cvref libstdc++: Fix definition of std::remove_cvref_t 2021-05-06 13:41:15 +01:00
remove_extent Update copyright years. 2021-01-04 10:26:59 +01:00
remove_pointer Update copyright years. 2021-01-04 10:26:59 +01:00
remove_reference Update copyright years. 2021-01-04 10:26:59 +01:00
remove_volatile Update copyright years. 2021-01-04 10:26:59 +01:00
result_of Update copyright years. 2021-01-04 10:26:59 +01:00
scoped_allocator libstdc++: Adjust expected errors in tests when compiled as C++20 2021-05-10 15:54:43 +01:00
shared_ptr libstdc++: Remove trailing whitespace in some tests 2021-08-03 15:30:36 +01:00
specialized_algorithms libstdc++: Remove c++20-specific dg-error directives in test 2021-09-23 16:07:39 +01:00
steady_clock Update copyright years. 2021-01-04 10:26:59 +01:00
synchronized_pool_resource libstdc++: Remove redundant -std=gnu++17 option from PMR tests 2021-05-10 16:22:53 +01:00
system_clock Update copyright years. 2021-01-04 10:26:59 +01:00
time_point libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
time_point_cast libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
to_address Update copyright years. 2021-01-04 10:26:59 +01:00
to_chars libstdc++: Disable floating_to_chars.cc on 16 bit targets 2021-05-20 13:21:41 +01:00
to_underlying libstdc++: Add std::to_underlying for C++23 2021-02-25 11:53:58 +00:00
tuple libstdc++: Fix last std::tuple constructor missing 'constexpr' [PR102270] 2021-09-17 20:43:34 +01:00
type_identity/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
typeindex Update copyright years. 2021-01-04 10:26:59 +01:00
underlying_type/requirements Update copyright years. 2021-01-04 10:26:59 +01:00
unique_ptr libstdc++: Add testsuite proc for testing deprecated features 2021-08-03 15:30:17 +01:00
unsynchronized_pool_resource libstdc++: Remove redundant -std=gnu++17 option from PMR tests 2021-05-10 16:22:53 +01:00
unwrap_reference Update copyright years. 2021-01-04 10:26:59 +01:00
uses_allocator libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
variant libstdc++: Allow visiting inherited variants [PR 90943] 2021-10-01 20:34:48 +01:00
void_t libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
weak_ptr libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
rel_ops.cc libstdc++: Add [[nodiscard]] to iterators and related utilities 2021-08-04 12:54:28 +01:00
temporary_buffer.cc Update copyright years. 2021-01-04 10:26:59 +01:00
variable_templates_for_traits.cc libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00