Adicionar / Remover membros de dados com parâmetros de modelo?
Considere o seguinte código:
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
Neste código, o parâmetro templateAddMembers
permite adicionar uma função para a classe quando étrue
. Para fazer isso, usamos umstd::enable_if
.
Minha pergunta é: o mesmo é possível (talvez com um truque) para variável de membros de dados? (de tal maneira queMyClass<false>
terá 1 membro de dados (myVariable
) eMyClass<true>
terá 2 membros de dados (myVariable
eaddedVariable
)