template<int n>
struct Numberim{
enum{ value = Numberim<n-1>::value + n };
};
template<>
struct Numberim<0>{
enum{ value = 0 };
};
это простой пример tmp, и все нормально;
template<int n>
class Numberim{
enum{ value = Numberim<n-1>::value + n };
};
template<>
class Numberim<0>{
enum{ value = 0 };
};
Я использую g ++ для компиляции, и это жалуется ... однако, насколько я знаю, struct и class обрабатываются почти одинаково. Просто так "В C ++ единственное отличие между struct и классом состоит в том, что члены структуры являются открытыми по умолчанию, а члены класса являются закрытыми по умолчанию. "
Итак, в чем разница между ними здесь, на земле?