我有基础班级模板,在此基础上制作了另一个班级,这些班级是我的基础班级的专用版本。我知道如何从特定的专业化案例中排除一些方法,但是有没有可能为班级的成员做出这样的决定?示例代码,什么我想要实现:按专业化排除班级成员
template<typename T>
class Base {
This variable exists only when T==integer VARIABLE;
}
template <Typename T>
WithVariable = using Base<int>;
template <Typename T>
Without = using Base<double>
我认为我应该使用std以某种方式::启用,但使用它使得可以进行类型的变量“无效”的时候,我不想要这个变量。这仍然不是我想要达到的情况。
您不需要'std :: enable_if'只需对'Base'的模板父类的特殊化。 PS。你不能创建'void'类型的变量... –
请更具体一些。 – Yakk
我想通过作为模板参数之一的bool值。布尔值将表明,如果例如动物有树干,并且如果是的话,我想在类animal_with_trunk中有成员len_of_trunk。 animal_with_trunk必须是基类动物的专用版本。我不能使用继承。 – Michocio