проблема с typename
От: Andy77 Ниоткуда  
Дата: 25.07.03 19:13
Оценка:
пытаюсь откомпилировать Stingray Stidio под VS2003... на мой взгляд, всё выглядит нормально, однако компилятор считает по-другому...

--<list>--------------------------------------------------------------------------------------
template<class _Ty,
    class _Ax = allocator<_Ty> >
    class list
        : public _List_val<_Ty, _Ax>
    {
        class iterator
            : public const_iterator
            {
            }
    };

--<example>-----------------------------------------------------------------------------------

#include <list>

template <typename _Aggr, typename _Iter = _Aggr::iterator>
class Iterator
{
};

template <typename _Component>
class CComposite
{
    typedef std::list<_Component* > Children;

    class CompIterator:
        public Iterator<Children>  // z:\nd\CppTest\Temp.h(16): error C2923: 'Iterator' : 'std::list<_Ty*>::iterator' is 
                                           // invalid as template argument '#2', type expected
                                           // z:\nd\CppTest\Temp.h(16): warning C4346: 'std::list<_Ty*>::iterator' : dependent 
                                           // name is not a type
    {
    };
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.