C++(11):获取函数的参数数量
#include <iostream>
using namespace std;template<typename R, typename... Args>
constexpr int funcParamNum(R(*func)(Args...))
{constexpr int funcParamNum = sizeof...(Args);return funcParamNum;
}void f1(int a){}void f2(int a, int b){}class A{
public:static void f3(int a, int b, int c){}
};int main()
{cout<<funcParamNum(f1)<<endl;cout<<funcParamNum(f2)<<endl;cout<<funcParamNum(A::f3)<<endl;return 0;
}
运行程序输出:
1
2
3
可以看到,通过该改函数可以获得函数以及类的静态函数的参数的数量