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 };
};
Я использую г ++ для компиляции, и он жалуется ... Но, насколько я знаю, структура и класс обрабатывается почти таким же, как это way.just "В C++, единственное различием между struct и class - это то, что члены структуры являются общедоступными по умолчанию, а члены класса по умолчанию являются закрытыми ».
Итак, какая разница между ними здесь, на земле?
'он жалуется.'- как он жалуется? –
Почему вы думаете, что есть разница? – josephthomas
@Jesse g ++ говорит вот так: «Ошибка:« Numberim <22> :: <анонимный enum> Numberim <22> :: value 'is private ", ну ... Я думаю, что наивно задавать этот вопрос. Спасибо. –