我有基礎班級模板,在此基礎上製作了另一個班級,這些班級是我的基礎班級的專用版本。我知道如何從特定的專業化案例中排除一些方法,但是有沒有可能爲班級的成員做出這樣的決定?示例代碼,什麼我想要實現:按專業化排除班級成員
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