Здравствуйте, Ed.ward, Вы писали:
EW>Здравствуйте, Andy77, Вы писали:
A>>пытаюсь откомпилировать Stingray Stidio под VS2003... на мой взгляд, всё выглядит нормально, однако компилятор считает по-другому...
A>>A>>--<list>--------------------------------------------------------------------------------------
A>>template<class _Ty,
A>> class _Ax = allocator<_Ty> >
A>> class list
A>> : public _List_val<_Ty, _Ax>
A>> {
A>> class iterator
A>> : public const_iterator
A>> {
A>> }
A>> };
A>>--<example>-----------------------------------------------------------------------------------
A>>#include <list>
A>>template <typename _Aggr, typename _Iter = typename _Aggr::iterator>
A>>class Iterator
A>>{
A>>};
A>>template <typename _Component>
A>>class CComposite
A>>{
A>> typedef std::list<_Component* > Children;
A>> class CompIterator:
A>> public Iterator< > // z:\nd\CppTest\Temp.h(16): error C2923: 'Iterator' : 'std::list<_Ty*>::iterator' is
A>> // invalid as template argument '#2', type expected
A>> // z:\nd\CppTest\Temp.h(16): warning C4346: 'std::list<_Ty*>::iterator' : dependent
A>> // name is not a type
A>> {
A>> };
A>>};
A>>
EW>EW>template <typename _Aggr, typename _Iter = typename _Aggr::iterator>
EW>
EW>Ed.ward
Тоже попытался скомпилировать Stingray Studio 2002 под VS 2003.
Правда я пытался компилировать только SFL.
Столкнулся с той же проблемой.Что касается необходимости добавления ключевого typename, то это не самое страшное на мой взгляд (ибо про это рассказано в MSDN, там где описаны отличия VC++ от предыдущих версий).
Но вот дальше хуже:
упорно не хотел компилится класс CComposite, а именно определение вложенного класса
62: class CompIterator:
63: public Iterator<Children>
ругалось warning-ом аналогичным, тем фрагментам которые указал Andy77. Причем добавление typename не помогло (где я только его не ставил

)
Пришлось вписать руками "typedef Iterator<Children> ChildrenIterator;"
а затем упомянутый выше фрагмент изменить на такой:
class CompIterator:
public ChildrenIterator;
Кроме того, попытавшись в примере Scribble (в подкаталоге Foundation) раскомментировать строку
//#define MDI
получаю ошибку в библиотечном файле mdiwnd.h в методе CMDIFrameImpl::MdiFrameProc, вызванную тем что в последних версиях ATL вместо стандартной структуры MSG используется _ATL_MSG.
Подозреваю что это далеко не все

, точнее все еще впереди

. Наверняка будут и другие грабли.
Поделись пожалуйста опытом испольования Stingray Studio 2002 и VS.NET 2003.
P.S: кажется Roguе Wave выпустила Update для Stingray Studio. У вас случайно нету?