Dodaj / Usuń członków danych z parametrami szablonu?
Rozważ następujący kod:
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
W tym kodzie parametr szablonuAddMembers
pozwala dodać funkcję do klasy, gdy jesttrue
. Aby to zrobić, używamystd::enable_if
.
Moje pytanie brzmi: czy to samo jest możliwe (może za pomocą podstępu) dla zmiennej członków danych? (w taki sposóbMyClass<false>
będzie miał 1 członka danych (myVariable
) iMyClass<true>
będzie miał 2 członków danych (myVariable
iaddedVariable
)?