2017-09-27 3 views
0

Ich mache eine Config-Bibliothek und möchte die Möglichkeit für Benutzer hinzufügen, um ein Klassenobjekt konfigurierbar zu machen. Ich möchte Benutzer in der Lage sein, configInstance.addOption<MyClass>() ausführen und es MyClass::toConfig() ausführen.Vorlage Aufruf statische Methode

Wie würde ich das umsetzen?

+0

tun implizieren Sie einige Argumente in addOption Methode übergeben? –

+0

ja. Wie ein Standardwert, ein std :: string keyName und ein std :: string Kommentar –

+0

Wenn Sie also eine Template-Methode verwenden, planen Sie, sie mit mehreren Klassen zu verwenden. Daher muss jede T-Klasse die Eigenschaften "keyName" und "comment" enthalten. Habe ich recht? Andernfalls, wenn MyClass die einzige ist, die konfiguriert werden sollte, sehe ich keinen Punkt, um Vorlagen zu verwenden. –

Antwort

0

verwenden Sie können so etwas wie:

class Config 
{ 
public: 
    // ... 

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

}; 

Und dann

Config configInstance; 

configInstance.addOption<MyClass>(); 
+0

so einfach? Danke. –

Verwandte Themen