2017-09-27 109 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

那容易?谢谢。 –