Rozważmy następujący kod:Dodawanie/usuwanie elementów danych z parametrami szablonu?
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 szablonu AddMembers
pozwolić aby dodać funkcję do klasy, kiedy to true
. Aby to zrobić, używamy std::enable_if
.
Moje pytanie brzmi: czy to samo możliwe (może z podstępem) dla zmiennej członków danych? (W taki sposób, że MyClass<false>
będzie mieć element 1 danych (myVariable
) i MyClass<true>
posiadają 2 użytkowników danych (myVariable
i addedVariable
)
+++++ 1 idealny! Mixin z warunkowym parametrem szablonu – Viet