gpt4 book ai didi

c++ - 如何获得重载决议选择的仿函数签名?

转载 作者:搜寻专家 更新时间:2023-10-31 00:50:54 25 4
gpt4 key购买 nike

我想在给定参数的情况下获取任意类型的 operator() 的类型。

template<typename F, typename... Args>
constexpr auto call_ptr =
static_cast<std::invoke_result_t<F, Args...> (F::*)(Args...)>(&F::operator());

但是,call_ptr 不适用于重载解析。比如这些都失败了

struct S {
void operator()(double) {}
void operator()(int) {}
};
call_ptr<S, char>;

call_ptr<decltype([](auto&&){}), int>;

如何编写call_ptr

最佳答案

没有办法做到这一点,但有人建议将此功能添加到语言中:http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3866.html

关于c++ - 如何获得重载决议选择的仿函数签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56634965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com