]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Fix std::is_nothrow_invocable_r for uncopyable prvalues [PR91456]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 23 Sep 2022 12:28:37 +0000 (13:28 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 16 May 2023 11:14:18 +0000 (12:14 +0100)
commit5c02a8eca7bcbe0ee021eddd5f764e8bfcb13b03
tree0c9750570f7e72c58ecf3240479c451c44368099
parent29cc830367656d7d3582dd2164a8db9ad66f9187
libstdc++: Fix std::is_nothrow_invocable_r for uncopyable prvalues [PR91456]

This is the last missing piece of PR 91456.

This also removes the only use of the C++11 version of
std::is_nothrow_invocable.

libstdc++-v3/ChangeLog:

PR libstdc++/91456
* include/std/type_traits (__is_nothrow_invocable): Remove.
(__is_invocable_impl::__nothrow_type): New member type which
checks if the conversion can throw.
(__is_nt_invocable_impl): Replace class template with alias
template to __is_nt_invocable_impl::__nothrow_type.
* testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
* testsuite/20_util/is_nothrow_convertible/value.cc: Remove
macro used by value_ext.cc test.
* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
test for non-standard __is_nothrow_invocable trait.

(cherry picked from commit 71c828f84572d933979468baf2cf744180258ee4)
libstdc++-v3/include/std/type_traits
libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc [moved from libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc with 59% similarity]