Considere el siguiente código:Agregar/Eliminar miembros de datos con parámetros de plantilla?
template<bool AddMembers> class MyClass
{
public:
void myFunction();
template<class = typename std::enable_if<AddMembers>::type> void addedFunction();
protected:
double myVariable;
/* SOMETHING */ addedVariable;
};
En este código, el parámetro de plantilla AddMembers
permite agregar una función a la clase cuando es true
. Para hacer eso, usamos un std::enable_if
.
Mi pregunta es: ¿es lo mismo posible (tal vez con un truco) para la variable de miembros de datos? (En una forma tal que MyClass<false>
tendrá miembro 1 de datos (myVariable
) y MyClass<true>
tendrá 2 miembros de datos (myVariable
y addedVariable
)
+++++ 1 perfecto! Mixin con parámetro de plantilla condicional – Viet