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
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| apply | Loading commit data... | |
| comparison_operators | Loading commit data... | |
| cons | Loading commit data... | |
| creation_functions | Loading commit data... | |
| element_access | Loading commit data... | |
| make_from_tuple | Loading commit data... | |
| requirements | Loading commit data... | |
| 48476.cc | Loading commit data... | |
| 51365.cc | Loading commit data... | |
| 53648.cc | Loading commit data... | |
| 56785.cc | Loading commit data... | |
| 60497.cc | Loading commit data... | |
| 61947.cc | Loading commit data... | |
| 67844.cc | Loading commit data... | |
| 77395.cc | Loading commit data... | |
| 77802.cc | Loading commit data... | |
| 78939.cc | Loading commit data... | |
| cv_tuple_element.cc | Loading commit data... | |
| cv_tuple_size.cc | Loading commit data... | |
| cv_tuple_size_neg.cc | Loading commit data... | |
| dr2729.cc | Loading commit data... | |
| moveable.cc | Loading commit data... | |
| moveable2.cc | Loading commit data... | |
| noexcept_move_assign.cc | Loading commit data... | |
| noexcept_swap.cc | Loading commit data... | |
| swap.cc | Loading commit data... | |
| swap_cxx17.cc | Loading commit data... | |
| tuple_element.cc | Loading commit data... | |
| tuple_element_t.cc | Loading commit data... | |
| tuple_size.cc | Loading commit data... | |
| tuple_size_v.cc | Loading commit data... |