www.digitalmars.com         C & C++   DMDScript  

c++.beta - [8.50.3] bug: CRTP + namespaces not correctly handled

Using, via CRTP, a component from the 'stlsoft' namespace, in a component in
the 'winstl' namespace (which is an alias for 'stlsoft::winstl_project').
The compiler complains about:

    dmccrtpbug.cpp(12) : Error: namespace 'winstl_project' does not enclose
member '?0' of namespace 'stlsoft'
    --- errorlevel 1

If the namespaces are removed, all is well.

I expect (as it's somewhat unusual) it's just a circumstance not yet seen by
the compiler. AFAICT, this is the last unworkaroundable DMC++ problem
holding up STLSoft 1.9. Hopefully the fix is reasonably simple. :-)



begin 666 dmccrtpbug.cpp
M;F%M97-P86-E('-T;'-O9G0-"GL-" T*("!T96UP;&%T92 \='EP96YA;64 
M1CX-"B  <W1R=6-T('5N87)Y7V9U;F-T:6]N7V]U='!U=%]I=&5R871O<E]A
M9&%P=&]R#0H ('L-"B  <')I=F%T93H-"B  ("!C;&%S<R!D97)E9E]P<F]X
M>0T*("  ('L-"B  ("!P=6)L:6,Z#0H ("  ("!D97)E9E]P<F]X>2AU;F%R
M>5]F=6YC=&EO;E]O=71P=71?:71E<F%T;W)?861A<'1O<CQ&/B J:70I#0H 
M("  ("  (#H ;5]I="AI="D-"B  ("  ('M]#0H-"B  ("!P=6)L:6,Z#0H 
M("  ("!T96UP;&%T92 \='EP96YA;64 03X-"B  ("  ('9O:60 ;W!E<F%T
M;W( /2A!(&-O;G-T("9A<F<I#0H ("  ("![#0H ("  ("  (&U?:70M/FEN
M=F]K95\\03XH87)G*3L-"B  ("  ('T-" T*("  ('!R:79A=&4Z#0H ("  
M*F-O;G-T(&U?:70[#0H ("  ?3L-" T*("!P<FEV871E. T*("  ('1E;7!L
M871E(#QT>7!E;F%M92!!/ T*("  ('9O:60 :6YV;VME7RA!(&-O;G-T("9A
M<F<I#0H ("  >PT*("  ("  *"IS=&%T:6-?8V%S=#Q&*CXH=&AI<RDI*&%R
M9RD[#0H ("  ?0T*("!].PT*#0H-"GT +R\ ;F%M97-P86-E('-T;'-O9G0-
M" T*;F%M97-P86-E('-T;'-O9G0-"GL-" T*("!N86UE<W!A8V4 =VEN<W1L
M7W!R;VIE8W0-"B  >PT*#0H ("  <W1R=6-T(&QI<W1B;WA?9G)O;G1?:6YS
M97)T97(-"B  ("  (#H <'5B;&EC('-T;'-O9G0Z.G5N87)Y7V9U;F-T:6]N
M97(^#0H ("  >PT*("  ('T[#0H-"B  ?2 O+R!N86UE<W!A8V4 =VEN<W1L
D7W!R;VIE8W0-" T*?2 O+R!N86UE<W!A8V4 <W1L<V]F= T*
Jan 13 2007