2015-03-26 3 views
1
template <typename List> 
class list_base { 
    typedef typename List::node node; 

}; 


template <typename T, typename Allocator = allocator<T>> 
class list: private list_base<list<T, Allocator>> { 
    typedef Allocator allocator_type; 

    class node { 

    }; 
}; 

Когда я создаю экземпляр list<int> x это дает мне ошибку:шаблон имяТипа конкретизации ошибка

../src/Console.cpp: In instantiation of ‘class list_base<list<int> >’: 
../src/Console.cpp:27:7: required from ‘class list<int>’ 
../src/Console.cpp:36:12: required from here 
../src/Console.cpp:21:30: error: no type named ‘node’ in ‘class list<int>’ 

Тип узла четко определен. Что здесь происходит ?

+0

Зачем спрашивать вопрос? – Gmt

ответ

2

Вопрос:

Type node clearly is defined. What happens here ?

list не полностью определяется при создании экземпляра базового класса.

Смежные вопросы