Hi!

We have got a problem with a part of our STLport for Symbian. The code fragment below compiles with gcce without any problems. But when we try to compile it for the emulator using the codewarrior compiler provided by nokia, the errors below are produced. We found a few hints on google describing, that cw has problems with nested typedefs but can not specify the exact problem. Our question would be if anyone has a more fundamental knowledge of cw and knows how to overcome that problem or why cw does not accept that typedef?

SDK: Series 60 3rd Edition and UIQ 3.0 Beta 2

Thanks a lot!


----CODE------
template <class _Iterator>
struct iterator_traits {
typedef typename _Iterator::iterator_category iterator_category;
typedef typename _Iterator::value_type value_type;
typedef typename _Iterator::difference_type difference_type;
typedef typename _Iterator:: pointer pointer;
typedef typename _Iterator::reference reference;
};

----ERRORS--------
mwccsym2 -O4,s -c -wchar_t off -align 4 -warnings on -w nohidevirtual,nounusedex
pr -msgstyle gcc -enum int -str pool -stdinc -exc ms -trigraphs on -d NDEBUG -d
_UNICODE -d "__SYMBIAN32__" -d "__CW32__" -d "__WINS__" -d "__WINSCW__" -d "__DL
L__" -d "S_SYMBIAN" -d "S_SYM9" -d PV_B -D_UNICODE -DUNICODE -d _STLP_HAS_WCHAR_
T -d _STLP_WCHAR_T_IS_USHORT -o .\oxyrb\errbuffer.obj errbuffer.cpp
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: illegal use of template argument dependent type 'T::iterator_category'
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (point of instantiation: 'ERRBuffer:: operator >>(basic_string<unsigned short,
char_traits<unsigned short>, allocator<unsigned short>> &)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'basic_string<unsigned short, char_traits<unsigned short>, a
llocator<unsigned short>>:: operator=(const unsigned short *)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'basic_string<unsigned short, char_traits<unsigned short>,
allocator<unsigned short>>::assign<const unsigned short *>(const unsigned short
*, const unsigned short *)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'basic_string<unsigned short, char_traits<unsigned short>,
allocator<unsigned short>>::_M_assign_dispatch<const unsigned short *>(const un
signed short *, const unsigned short *, const __false_type &)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'basic_string<unsigned short, char_traits<unsigned short>
, allocator<unsigned short>>::append<const unsigned short *>(const unsigned shor
t *, const unsigned short *)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'basic_string<unsigned short, char_traits<unsigned short
>, allocator<unsigned short>>::_M_append_dispatch<const unsigned short *>(const
unsigned short *, const unsigned short *, const __false_type &)')
..\..\..\..\Symbian\UIQ3SDK_BETA2\epoc32\include\stlport\stl\_iterator_base.h:92
: (instantiating: 'iterator_traits<const unsigned short *>')

And so on... the errors repeat for every of the 5 typedefs ...