gpt4 book ai didi

c++ - 获取函数指针的参数计数

转载 作者:可可西里 更新时间:2023-11-01 17:17:06 28 4
gpt4 key购买 nike

我现在正在使用这段代码:

    size_t argc(std::function<Foo()>)
{ return 0; }

size_t argc(std::function<Foo(Bar)>)
{ return 1; }

size_t argc(std::function<Foo(Bar, Bar)>)
{ return 2; }

size_t argc(std::function<Foo(Bar, Bar, Bar)>)
{ return 3; }

// ...

但它有点丑陋且受限(用户不能使用具有任意数量参数的函数调用 argc。)有更好的方法吗?

注意:返回类型和参数类型总是相同的。我知道我可以使用模板来接受任何类型,但我不需要它。

最佳答案

@Paolo 答案的更清晰版本,可用于实际对象:

template<class R, class... Args>
constexpr unsigned arity(std::function<R(Args...)> const&){
return sizeof...(Args);
}

关于c++ - 获取函数指针的参数计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645058/

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