gcc/libstdc++-v3/include/std
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
..
algorithm Fix incorrect __cpp_lib_parallel_algorithm macro definitions 2019-06-12 21:16:03 +01:00
any Make any_cast compare typeinfo as well as function pointers 2019-05-23 15:13:18 +01:00
array P0325R4 to_array from LFTS with updates 2019-08-08 11:18:53 +01:00
atomic Define std::atomic_ref and std::atomic<floating-point> for C++20 2019-07-11 20:43:25 +01:00
bit Add Doxygen comments to <bit> header 2019-07-31 15:38:50 +01:00
bitset
charconv Define std::chars_format enumeration type 2019-06-26 23:54:38 +01:00
chrono Improve API docs for <chrono> and <ratio> 2019-05-07 23:46:53 +01:00
codecvt
complex PR libstdc++/61761 fix std::proj for targets without C99 cproj 2019-05-01 01:08:36 +01:00
condition_variable
deque
execution Synchronize libstdc++ PSTL with upstream LLVM PSTL 2019-06-07 22:01:16 +00:00
filesystem Improve docs for C++17 Filesystem library 2019-05-02 16:46:38 +01:00
forward_list Avoid ambiguity between C++2a std::erase_if and LFTS version 2019-01-29 00:47:38 +00:00
fstream Miscellaneous API doc improvements 2019-05-02 16:46:50 +01:00
functional P1651R0 bind_front should not unwrap reference_wrapper 2019-08-06 16:57:55 +01:00
future LWG 2921 remove packaged_task constructors taking allocators 2019-05-23 22:40:56 +01:00
iomanip
ios
iosfwd
iostream
istream
iterator Reduce header dependencies in <iterator> 2019-05-14 13:47:39 +01:00
limits P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
list Avoid ambiguity between C++2a std::erase_if and LFTS version 2019-01-29 00:47:38 +00:00
locale
map
memory Qualify call to prevent ADL 2019-07-31 20:08:56 +01:00
memory_resource Implement polymorphic_allocator<byte> for C++20 (P0339R6) 2019-03-04 12:21:06 +00:00
mutex Simplify std::scoped_lock destructor 2019-06-12 15:52:06 +01:00
numbers Specialize std::numbers constants for __float128 2019-08-06 16:57:51 +01:00
numeric Fix non-portable use of std::abs(double) in constexpr function 2019-06-25 14:18:36 +01:00
optional Avoid unnecessary inclusion of <stdexcept> header 2019-06-06 16:34:56 +01:00
ostream
queue
random
ratio Improve API docs for <chrono> and <ratio> 2019-05-07 23:46:53 +01:00
regex
scoped_allocator Improve API docs for <memory> and <scoped_allocator> 2019-05-02 16:45:04 +01:00
set
shared_mutex Improve docs for mutexes 2019-05-02 16:46:42 +01:00
sstream
stack
stdexcept
streambuf
string Define std::hash specializations for C++17 PMR strings 2019-04-03 10:47:47 +01:00
string_view Define __type_identity_t alias and use for string_view 2019-07-12 12:43:22 +01:00
system_error Fix reference to wrong class in comment 2019-05-04 16:52:52 +01:00
thread PR libstdc++/69724 avoid temporary in std::thread construction 2019-05-14 13:01:15 +01:00
tuple Add noexcept-specifier to std::apply and std::make_from_tuple 2019-08-12 15:54:12 +01:00
type_traits Relocate std::endian from <type_traits> to <bit> 2019-07-25 21:30:25 +01:00
typeindex
unordered_map
unordered_set
utility Implement C++20 p0202 - Add Constexpr Modifiers to Functions in <algorithm> and <utility> Headers. 2019-08-01 15:25:42 +00:00
valarray
variant Qualify calls to __never_valueless in <variant> 2019-06-20 15:17:51 +01:00
vector Ensure pool resources always use normal mode vector 2019-01-29 00:47:25 +00:00
version P0325R4 to_array from LFTS with updates 2019-08-08 11:18:53 +01:00