2017-09-27 147 views
0

我正在創建一個配置庫,並希望爲用戶添加一個能夠使類對象可配置的功能。 我希望用戶能夠運行configInstance.addOption<MyClass>()並運行MyClass::toConfig()模板調用靜態方法

我該如何實施?

+0

你意味着一些參數傳遞到addOption方法? –

+0

是的。像一個默認值,一個std :: string keyName和一個std :: string註釋 –

+0

因此,就使用模板方法而言,您打算將它用於多個類。因此,每個T類都必須包含「keyName」和「comment」屬性。我對嗎?否則,如果MyClass是唯一應該配置的,我沒有看到使用模板的任何要點。 –

回答

0

您可以使用類似:

class Config 
{ 
public: 
    // ... 

    template <typename T> 
    void addOption() 
    { 
     T::toConfig(); 
    } 

}; 

然後

Config configInstance; 

configInstance.addOption<MyClass>(); 
+0

那容易?謝謝。 –