我在下午和晚上试图从函数指针中获取参数类型列表。我可以使用类似于此处提出的解决方案来获取各个参数类型:How do I get the argument types of a function pointer in a variadic template class?,但是因为我不知道使用了多少参数(如果有的话),所以会中断。
我有以下(减少)功能:
void LuaWrapper::Register(const char* aFunctionName, Ret(*aFunctionType(Args...))
{
//I can get the return value via typeid(Ret).name()
//I would like to be able to do something like typeid(Args...).name() to get a list of all parameter types
}
我要求的是不可能的,还是我只是密集?
答案 0 :(得分:1)
由于typeid
包含多种类型,因此您无法为所有Args
获得一个Args
。
只需为每种类型单独获取:
const char *args[] = { typeid(Args).name()... };