Betrachten Sie den folgenden Code ein:Hinzufügen/Entfernen von Datenelementen mit Vorlagenparametern?
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
In diesem Code ist der Template-Parameter AddMembers
ermöglichen, eine Funktion zur Klasse hinzuzufügen, wenn es true
ist. Um dies zu tun, verwenden wir eine std::enable_if
.
Meine Frage ist: ist das gleiche möglich (vielleicht mit einem Trick) für Datenelemente Variable? (In einer solchen Art und Weise, dass MyClass<false>
wird 1-Datenelement haben (myVariable
) und MyClass<true>
werden 2 Datenelemente haben (myVariable
und addedVariable
)
+++++ 1 perfekt! Mixin mit bedingten Template-Parametern – Viet