<void(void)>在模板参数中的含义</void(void)>

时间:2012-12-12 14:52:47

标签: c++ templates

我在我正在工作的项目中找到了这段代码:

template<typename T>
class SomeClass
{
};
typedef SomeClass<void(void)> SomeType;

<void(void)>构造意味着什么?您能否在一个简单的样本中解释如何使用这样的结构?

2 个答案:

答案 0 :(得分:5)

这意味着type参数是一个函数类型(注意,不是函数指针,而是函数类型),它不带任何参数,并且不返回任何值。

您甚至可以通过以下方式定义函数参数:

void f (void(void));

传递时会衰减到函数指针(就像数组参数衰减到指针一样)。

答案 1 :(得分:1)

T这里是一种函数,它不返回任何参数。