从函数中获取参数类型列表

时间:2015-02-24 21:44:11

标签: c++ c++11 visual-c++

我在下午和晚上试图从函数指针中获取参数类型列表。我可以使用类似于此处提出的解决方案来获取各个参数类型: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
}

我要求的是不可能的,还是我只是密集?

1 个答案:

答案 0 :(得分:1)

由于typeid包含多种类型,因此您无法为所有Args获得一个Args

只需为每种类型单独获取:

const char *args[] = { typeid(Args).name()... };