我在我正在工作的项目中找到了这段代码:
template<typename T>
class SomeClass
{
};
typedef SomeClass<void(void)> SomeType;
Run Code Online (Sandbox Code Playgroud)
什么意思<void(void)>建设?您能否在一个简单的样本中解释如何使用这样的结构?
这意味着type参数是一个不带参数的函数类型(注意,不是函数指针,而是函数类型),并且不返回任何值.
您甚至可以通过以下方式定义函数参数:
void f (void(void));
Run Code Online (Sandbox Code Playgroud)
这将在传递时衰减为函数指针(就像数组参数衰减到指针一样).