Datenelemente mit Vorlagenparametern hinzufügen / entfernen?
Betrachten Sie den folgenden Code:
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 der VorlagenparameterAddMembers
Erlaube, der Klasse eine Funktion hinzuzufügen, wenn sie isttrue
. Dazu verwenden wir einstd::enable_if
.
Meine Frage ist: ist das gleiche möglich (vielleicht mit einem Trick) für Datenelemente variabel? so, dassMyClass<false>
wird 1 Datenmitglied haben (myVariable
) undMyClass<true>
wird 2 Datenmitglieder haben (myVariable
undaddedVariable
)?