【发布时间】:2016-02-23 14:23:35
【问题描述】:
函数指针指向的事物的类型怎么写?
换句话说,我可以得到它的类型:
#include <type_traits>
typedef std::remove_pointer<void(*)(int)>::type func;
但是如何在不使用std::remove_pointer<> 的情况下编写func 类型的名称?
【问题讨论】:
-
void func(int);不工作吗? -
哈,是的,我的错。正在尝试
typedef void(int) func;。意识到我应该在你发表评论的同时试试这个。 -
C++11 起,
using func = void(int);. -
@alain 这个声明难道不是声明一个 void function(不是 type!)
func采用 int 吗? -
是的,@PeterA.Schneider,这就是我没有将其作为答案发布的原因。但是因为类型最常见的用途是创建实例,所以我想它可能就是所有需要的。在函数类型(不是指针)的情况下,我必须承认我不知道任何其他用途......
标签: c++ templates types function-pointers template-meta-programming