Я читал эту tutorial на шаблонах переменным числом, но ниже код:Синтаксис typedef и шаблонов C++?
template<int index, class C>
struct container_index {
// points to the "next" container type
typedef typename container_index<
index-1,
typename C::base_container
>::container_type container_type;
// points to the next T-type
typedef typename container_index<
index-1,
typename C::base_container
>::type type;
};
эти определения типов кажется излишним, но он компилирует хорошо. Проблема в том, что я просто не понимаю, почему они такие, и я не нашел учебника, объясняющего этот случай. Может ли кто-нибудь дать какое-то объяснение? Почему название ЬурейеЕ повторяется:
"::container_type container_type;"
"::type type;"
Это не может быть просто так:
typedef typename container_index<
index-1,
typename C::base_container
> type;
Большое спасибо.
Из-за рекурсии? См. Также обсуждение в [этом вопросе] (http://stackoverflow.com/questions/36913554/c-typedef-and-templates-syntax). –