[英]Pass Void as Function Parameter
我有一個函數應該接受任何類型的參數。 因此我使用模板。
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
作為函數參數傳遞?
為什么不指定非模板重載?
void* Callback;
template <typename T>
void Function(T Parameter)
{
(function<void(T)>)Callback(Parameter);
}
void Function()
{
(function<void()>)Callback();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.