Skip to content

Commit 647deca

Browse files
authored
feat: deduce noexcept signature from ptdm (#15)
Address [LWG 4425](https://cplusplus.github.io/LWG/issue4425)
1 parent 000fd6d commit 647deca

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

include/std23/__functional_base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ struct _drop_first_arg_to_invoke<R (*)(G, Args...) noexcept, T>
212212
template<class T, class M, class G> requires std::is_object_v<M>
213213
struct _drop_first_arg_to_invoke<M G::*, T>
214214
{
215-
using type = std::invoke_result_t<M G::*, T>();
215+
using type = std::invoke_result_t<M G::*, T>() noexcept;
216216
};
217217

218218
template<class T, class M, class G> requires std::is_function_v<M>

tests/function_ref/test_ctad.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,13 @@ void test_ctad()
6565
{
6666
A a;
6767
auto fr = function_ref(nontype<&A::data>, &a);
68-
static_assert(std::is_same_v<decltype(fr), function_ref<int &()>>);
68+
static_assert(
69+
std::is_same_v<decltype(fr), function_ref<int &() noexcept>>);
6970

7071
auto fc = function_ref(nontype<&A::data>, std::as_const(a));
71-
static_assert(std::is_same_v<decltype(fc), function_ref<int const &()>>,
72-
"type to retrieve data member depends on object");
72+
static_assert(
73+
std::is_same_v<decltype(fc), function_ref<int const &() noexcept>>,
74+
"type to retrieve data member depends on object");
7375
}
7476

7577
{

0 commit comments

Comments
 (0)