访问可变参数模板类中的函数指针参数类型
此问题源于先前关于为具有任意参数的函数创建通用函子的查询列表。给定的函子类 Foo 允许使用任意数量的参数调用函数指针。然而,现在的任务是从 Foo 构造函数内的函数指针中提取参数类型。
在定义 Foo 类时,参数类型在构造函数的函数指针声明中被封装为 ARGS...。虽然参数的值在构造时不可用,但它们的类型可以在函数指针本身内访问。
要发现这些参数类型,可以利用 function_traits 类:
template
struct function_traits;
template>
{
// Number of arguments
static const size_t nargs = sizeof...(Args);
// Return type
typedef R result_type;
// Argument types at specified index
template <size_t i>
struct arg
{
typedef typename std::tuple_element<i, std::tuple<Args...>>::type type;
};
};
在 Foo 构造函数中,可以使用 function_traits 访问这些参数类型,如下所示:
template通过使用 function_traits,可以在 Foo 类中提取和利用参数类型,从而实现基于函数签名的复杂操作。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3