Добавить / удалить элементы данных с параметрами шаблона?
Рассмотрим следующий код:
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
В этом коде параметр шаблонаAddMembers
позволяют добавить функцию в класс, когда онаtrue
, Для этого мы используемstd::enable_if
.
Мой вопрос: возможно ли то же самое (возможно, с помощью хитрости) для переменных членов данных? (таким образом, чтоMyClass<false>
будет иметь 1 элемент данных (myVariable
) а такжеMyClass<true>
будет иметь 2 члена данных (myVariable
а такжеaddedVariable
) ?