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

Mir*_*pas 3 c++ templates

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

template<typename T>
class SomeClass
{
};
typedef SomeClass<void(void)> SomeType;
Run Code Online (Sandbox Code Playgroud)

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

Sto*_*ica 5

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

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

void f (void(void));
Run Code Online (Sandbox Code Playgroud)

这将在传递时衰减为函数指针(就像数组参数衰减到指针一样).