typedef中的c ++函数类型

时间:2013-01-27 02:17:22

标签: c++ template-meta-programming generic-programming

为什么函数类型的以下typedef声明没有编译?

typedef void( int ) void_from_int_t;

2 个答案:

答案 0 :(得分:2)

它应该是typedef void(void_from_int_t)(int);等。声明跟随使用,spiral rule,或者你最喜欢的助记符。

答案 1 :(得分:0)

通常,要创建类型定义,只需将typedef添加到变量定义:

// array of ten integers, instance and type
int a[10];
typedef int a_t[10];
// function, declaration and type
void function(int);
typedef void function_t(int);

请注意,这是一个函数类型,而不是函数指针类型,可以通过添加星形来获得:

function_t* pf = &function;