您如何使用参数包参数键入功能指针类型
How do you typedef a function pointer type with parameter pack arguments
在函数指针中键入参数包的语法是什么?
我希望能够打字功能指针,但是编译器当我做这样的事情时抱怨
template< class ...Args >
struct method { typedef typename void(*type)(void*, Args...); };
沿着error: expected nested-name-specifier before 'void'
没有typename
的工作正常。http://coliru.stacked-crooked.com/a/64b3fbec9276dd70
您不应该在此处使用typename
,因为没有 nested-name-name-depifier 。
我想您应该从typedef
行删除typename
template <typename ... Args>
struct method
{ typedef void(*type)(void*, Args...); };
另一个解决方案可以使用using
代替typedef
(IMHO更清楚)
template <typename ... Args>
struct method
{ using type = void(*)(void*, Args...); };
相关文章:
- 对可变参数使用声明.如何选择正确的功能
- 如何在C++中调用默认模板功能参数?
- 如何从其他功能C++访问参数?
- 如何定义可变参数类模板的成员模板功能
- C++ std::enable_if - 第二个参数的功能
- 对于非常量指针类型的参数,未调用具有常量指针模板类型参数的功能
- 具有C++迭代器参数的多功能函数
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- C 函数调用包装器包含类成员功能作为模板参数
- 非拖动功能模板参数包的合法使用
- 组件X86转换为ARM功能呼叫,其中有不同数量的参数为ARM
- 公共功能以私人课程为参数
- 如何部分专业化功能以用元组元素作为参数调用功能
- 如何存储指针以功能模板,该模板将可呼叫对象作为其参数之一
- std ::功能作为默认参数的功能
- C 功能模板指定第二个模板参数类型
- 传递多个参数的功能,该函数将类包含到其他函数
- 别名一个模板函数,该功能没有参数可更简洁
- 如何推断for_each的模板参数功能
- 用户界面-GUI和文本模式C++设计,以消除冗余(可选参数?功能过载?)