我有一个函数应该接受任何类型的参数。因此我使用模板。
template <typename T>
void Function(T Parameter);
该函数调用一个函数。在我的实际应用程序中,有一个带有字符串键的回调映射,但这对于这个问题并不重要。回调必须是返回类型为void的函数指针,但可以是任何参数类型。
void* Callback;
template <typename T>
void Function(T Parameter)
{
(function<void(T))Callback(Parameter);
}
假设回调是正确的类型,这应该如下所示。
Function<int>(42);
// should result in...
(function<void(int))Callback(42);
但在某些情况下,我想void
作为参数传递。
Function<void>(void);
// should result in...
(function<void(void)>Callback(void);
如您所见,我不需要提供任何内容或void
作为参数。但我不能void
作为论据。存在类型名称不正确的错误。
如何void
作为函数参数传递?