]> 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>
Fri, 23 Sep 2022 22:22:37 +0000 (23:22 +0100)
commit71c828f84572d933979468baf2cf744180258ee4
tree08321da54ffa1e2566dbdc0c578d8cdcfbb59f51
parentd88319de4165cd58764f0611df03179d6ce4d160
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, which was just renamed to
__is_nothrow_invocable_lib. We can remove that now.

libstdc++-v3/ChangeLog:

PR libstdc++/91456
* include/std/type_traits (__is_nothrow_invocable_lib): 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_lib trait.
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]