我正在創建事件系統。它基於boost :: signals。爲了使工作更容易,我使用typedef作爲函數簽名。動態創建typedef
在我需要創建一些新事件trought event的系統方法之前,所有東西都是okey。我必須在給定類型上動態創建typedef到模板函數。問題是typedef的名字。
一些僞我會:
template<typename EventType>
void create(const string &signalName)
{
typedef EventType signalName;
// ...
}
是否有可能做出這樣的typedef(自己的名字),還有一些傳遞的字符串或數據或者其他什麼東西?我不想讓用戶在意這一點。
UPD:所以,我有一些類型定義的函數簽名的名單 - 事件。例如,我有一些模板連接插槽的功能。我不想強迫用戶每次都再次用手輸入簽名(用戶是使用事件系統的程序員)。所以我只是使用特殊命名空間中的typedef模板參數。
假設這樣的事情是可能的。你如何設想*使用* typedef一旦你創建它?告訴您的預期用途可能會幫助人們思考替代解決方案。 – 2010-06-18 22:38:24
@ rob-kennedy更新 – Ockonal 2010-06-18 22:42:56
謝謝,但那並沒有真正回答我的問題。我的意思是你應該演示如何調用'create'函數,然後演示如何使用生成的typedef。顯示一些示例代碼,瞭解如何使用此功能。 – 2010-06-18 22:56:34