8sa1-gcc/libstdc++-v3/testsuite/20_util
Jonathan Wakely 6fd4b25b50 Add noexcept-specifier to std::apply and std::make_from_tuple
When unpacking a std::tuple we know that the std::get calls are
noexcept, so only the invocation (for std::apply) and construction (for
std::make_from_tuple) can throw.

We also know the std::get calls won't throw for a std::array, but this
patch doesn't specialize the variable template for std::array. For an
arbitrary tuple-like type we don't know if the std::get calls will
throw, and so just use a potentially-throwing noexcept-specifier.

	* include/std/tuple (__unpack_std_tuple): New variable template and
	partial specializations.
	(apply, make_from_tuple): Add noexcept-specifier.
	* testsuite/20_util/tuple/apply/2.cc: New test.
	* testsuite/20_util/tuple/make_from_tuple/2.cc: New test.

From-SVN: r274312
2019-08-12 15:54:12 +01:00
..
add_const
add_cv
add_lvalue_reference
add_pointer
add_rvalue_reference
add_volatile
addressof
align
aligned_storage
aligned_union
alignment_of
allocator Fix AIX test failure due to replacement operator delete 2019-06-17 16:51:31 +01:00
allocator_traits Add __gnu_test::NullablePointer utility to testsuite 2019-05-14 12:17:23 +01:00
any trans.c (check_inlining_for_nested_subprog): Quote reserved names. 2019-05-17 11:55:43 -06:00
as_const
assume_aligned
auto_ptr
bad_function_call Fix tests that fail without PCH 2019-06-17 09:18:17 +01:00
bind
bool_constant
common_type/requirements PR libstdc++/89102 implement new common_type rules (P0435R1, P0548R1) 2019-05-07 23:46:39 +01:00
conditional/requirements
decay/requirements
declval/requirements
default_delete PR libstdc++/90388 fix std::hash<unique_ptr<T,D>> bugs 2019-05-10 22:41:16 +01:00
duration PR libstdc++/89102 implement new common_type rules (P0435R1, P0548R1) 2019-05-07 23:46:39 +01:00
duration_cast
enable_if/requirements
enable_shared_from_this
exchange Implement C++20 p0202 - Add Constexpr Modifiers to Functions in <algorithm> and <utility> Headers. 2019-08-01 15:25:42 +00:00
extent
forward
from_chars
function
function_objects P1651R0 bind_front should not unwrap reference_wrapper 2019-08-06 16:57:55 +01:00
has_unique_object_representations
has_virtual_destructor
hash
headers
in_place
integer_sequence
integral_constant
is_abstract Remove redundant static assertions in [meta.unary.prop] traits 2019-06-06 13:13:47 +01:00
is_aggregate Remove redundant static assertions in [meta.unary.prop] traits 2019-06-06 13:13:47 +01:00
is_arithmetic
is_array
is_assignable
is_base_of
is_bounded_array
is_class PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_complete_or_unbounded PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_compound
is_const
is_constant_evaluated
is_constructible PR c++/90532 Ensure __is_constructible(T[]) is false 2019-05-20 12:32:51 +01:00
is_convertible
is_copy_assignable
is_copy_constructible
is_default_constructible PR c++/90532 Ensure __is_constructible(T[]) is false 2019-05-20 12:32:51 +01:00
is_destructible
is_empty Remove redundant static assertions in [meta.unary.prop] traits 2019-06-06 13:13:47 +01:00
is_enum
is_final Remove redundant static assertions in [meta.unary.prop] traits 2019-06-06 13:13:47 +01:00
is_floating_point
is_function PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_fundamental
is_implicitly_default_constructible
is_integral
is_invocable
is_literal_type
is_lvalue_reference
is_member_function_pointer
is_member_object_pointer
is_member_pointer
is_move_assignable
is_move_constructible PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_nothrow_assignable
is_nothrow_constructible
is_nothrow_convertible Add __is_nothrow_convertible to fix std::is_nothrow_invocable_r 2019-05-14 15:39:58 +01:00
is_nothrow_copy_assignable
is_nothrow_copy_constructible
is_nothrow_default_constructible
is_nothrow_destructible
is_nothrow_invocable Fix tests that fail with -std=gnu++98 or -std=gnu++11 2019-06-06 13:13:42 +01:00
is_nothrow_move_assignable PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_nothrow_move_constructible
is_nothrow_swappable
is_nothrow_swappable_with
is_null_pointer
is_object
is_pod
is_pointer
is_polymorphic Remove redundant static assertions in [meta.unary.prop] traits 2019-06-06 13:13:47 +01:00
is_reference PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_rvalue_reference
is_same
is_scalar
is_signed
is_standard_layout
is_swappable
is_swappable_with
is_trivial
is_trivially_assignable
is_trivially_constructible PR c++/90532 Ensure __is_constructible(T[]) is false 2019-05-20 12:32:51 +01:00
is_trivially_copy_assignable
is_trivially_copy_constructible
is_trivially_copyable CWG 2094 - volatile scalars are trivially copyable. 2019-05-20 19:10:57 +00:00
is_trivially_default_constructible PR c++/90532 Ensure __is_constructible(T[]) is false 2019-05-20 12:32:51 +01:00
is_trivially_destructible
is_trivially_move_assignable
is_trivially_move_constructible
is_unbounded_array PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_union PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_unsigned
is_void PR libstdc++/71579 assert that type traits are not misused with incomplete types 2019-05-31 11:35:03 +01:00
is_volatile
logical_traits
make_signed/requirements
make_unsigned/requirements
memory_resource
monotonic_buffer_resource
move
move_if_noexcept
nonesuch nonesuch is insufficiently useless (lwg2996) 2019-05-14 16:48:27 +01:00
optional
owner_less
pair
pointer_safety
pointer_traits
polymorphic_allocator Tweak C++2a uses-allocator construction utilities 2019-04-26 14:15:54 +01:00
rank
ratio Improve API docs for <chrono> and <ratio> 2019-05-07 23:46:53 +01:00
raw_storage_iterator
reference_wrapper
remove_all_extents
remove_const
remove_cv
remove_cvref
remove_extent
remove_pointer
remove_reference
remove_volatile
result_of
scoped_allocator Tweak C++2a uses-allocator construction utilities 2019-04-26 14:15:54 +01:00
shared_ptr Fix tests that fail without PCH 2019-06-17 09:18:17 +01:00
specialized_algorithms Synchronize libstdc++ PSTL with upstream LLVM PSTL 2019-06-07 22:01:16 +00:00
steady_clock
synchronized_pool_resource
system_clock
time_point
time_point_cast
to_address
to_chars Define std::chars_format enumeration type 2019-06-26 23:54:38 +01:00
tuple Add noexcept-specifier to std::apply and std::make_from_tuple 2019-08-12 15:54:12 +01:00
type_identity/requirements
typeindex
underlying_type/requirements
unique_ptr PR libstdc++/91308 fix constraints on unique_ptr assignment 2019-07-31 15:38:26 +01:00
unsynchronized_pool_resource
unwrap_reference
uses_allocator
variant Fix std::variant test for ILP32 targets 2019-05-17 15:13:43 +01:00
void_t
weak_ptr
rel_ops.cc
temporary_buffer.cc
variable_templates_for_traits.cc