是否有标准方法来获取函数参数的类型并将这些类型作为模板参数包传递?我知道这在 C++ 中是可能的,因为它之前已经完成。
我希望使用 C++14 或即将推出的 C++1z,这里会有一种惯用的方式来实现arg_types<F>...
:
template <typename ...Params>
void some_function(); // Params = const char* and const char*
FILE* fopen(const char* restrict filename, const char* restrict mode);
int main(){
some_function<arg_types<fopen>...>();
}
需要明确的是,声称没有标准方法可以做到这一点的答案不是答案。如果没有答案,我希望这个问题一直没有答案,直到解决方案添加到 C++500 或直到宇宙的热寂,以较早发生的为准:)
编辑:已删除的答案指出我可以PRETTY_FUNCTION
用来获取参数类型的名称。但是,我想要实际的类型。不是这些类型的名称。