www.digitalmars.com         C & C++   DMDScript  

c++ - Specialisation bug

reply "Matthew" <matthew.hat stlsoft.dot.org> writes:
Walter

STLSoft has its own char_traits type, and I've recently added some
specialisations, on a function level, to it.

Unfortunately DMC++ reports that the in-class function is invalid because
its already seen a definition outside the class - the specialisation.

Is this something you're aware of? I'm including file, as I haven't time to
prepare an example atm.

Cheers


-- 
Matthew Wilson

STLSoft moderator (http://www.stlsoft.org)
Contributing editor, C/C++ Users Journal
(www.synesis.com.au/articles.html#columns)

"You can tell a Yorkshireman, but you can't tell him much!" -- Uncle Michael

----------------------------------------------------------------------------
---



begin 666 stlsoft_char_traits.h
M+RH +R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O
M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J($9I;&4Z

M5')A:70N:"P .CI3>6YE<VES4W1L*0T*("H-"B J(%!U<G!O<V4Z("  ("!C
M:&%R7W1R86ET<R!C;&%S<V5S+ T*("H-"B J($-R96%T960Z("  (" Q.71H



M*$QI8V5N<V5D('5N9&5R('1H92!3>6YE<VES(%-O9G1W87)E(%-T86YD87)D


M("H-"B J("  ("  ("  ("  ("!!;&P <FEG:'1S(')E<V5R=F5D+ T*("H-
M"B J("  ("  ("  ("  ("!W=W<Z("  ("  ("!H='1P.B\O=W=W+G-Y;F5S
M:7,N8V]M+F%U+W-T;'-O9G0-"B J("  ("  ("  ("  ("  ("  ("  ("  
M("!H='1P.B\O=W=W+G-T;'-O9G0N;W)G+PT*("H-"B J("  ("  ("  ("  
M("!E;6%I;#H ("  ("!S=6)M:7-S:6]N<T!S=&QS;V9T+F]R9R  9F]R('-U


M*B  ("  ("  ("  ("  4F5D:7-T<FEB=71I;VX 86YD('5S92!I;B!S;W5R
M8V4 86YD(&)I;F%R>2!F;W)M<RP =VET:"!O< T*("H ("  ("  ("  ("  
M('=I=&AO=70 ;6]D:69I8V%T:6]N+"!A<F4 <&5R;6ET=&5D('!R;W9I9&5D
M('1H870 =&AE(&9O;&QO=VEN9PT*("H ("  ("  ("  ("  (&-O;F1I=&EO
M;G, 87)E(&UE=#H-
M8G5T:6]N<R!O9B!S;W5R8V4 8V]D92!M=7-T(')E=&%I;B!T:&4 86)O=F4-
M"B J("  ("  ("  ("  ("!C;W!Y<FEG:'0 ;F]T:6-E(&%N9"!C;VYT86-T
M(&EN9F]R;6%T:6]N+"!T:&ES(&QI<W0 ;V8-"B J("  ("  ("  ("  ("!C

M("H ("  ("  ("  ("  ("AI:2D 06YY(&1E<FEV960 =F5R<VEO;G, ;V8 
M=&AI<R!S;V9T=V%R92 H:&]W<V]E=F5R(&UO9&EF:65D*0T*("H ("  ("  
M("  ("  (')E;6%I;B!T:&4 <V]L92!P<F]P97)T>2!O9B!3>6YE<VES(%-O
M9G1W87)E+ T*("H-"B J("  ("  ("  ("  (" H:6EI*2!!;GD 9&5R:79E
M9"!V97)S:6]N<R!O9B!T:&ES('-O9G1W87)E("AH;W=S;V5V97( ;6]D:69I


M=&AE<B!T:&4 ;F%M92!O9B!3>6YE<VES(%-O9G1W87)E(&YO<B!T:&4 ;F%M

M;WEE97, ;W( 86=E;G1S(&]F(%-Y;F5S:7, 4V]F='=A<F4L(&YO<B!T:&4-
M"B J("  ("  ("  ("  ("!N86UE<R!O9B!A;GD ;W1H97( 8V]N=')I8G5T
M;W)S('1O('1H:7, <V]F='=A<F4 ;6%Y(&)E('5S960 =&\-"B J("  ("  
M("  ("  ("!E;F1O<G-E(&]R('!R;VUO=&4 <')O9'5C=', 9&5R:79E9"!F
M<F]M('1H:7, <V]F='=A<F4 =VET:&]U= T*("H ("  ("  ("  ("  ('-P

M("  ("  ("  5&AI<R!S;W5R8V4 8V]D92!I<R!P<F]V:61E9"!B>2!3>6YE
M<VES(%-O9G1W87)E(")A<R!I<R( 86YD(&%N>0T*("H ("  ("  ("  ("  
M('=A<G)A;G1I97,L('=H971H97( 97AP<F5S<V5D(&]R(&EM<&QI960L(&EN
M8VQU9&EN9RP 8G5T(&YO= T*("H ("  ("  ("  ("  (&QI;6ET960 =&\L
M('1H92!I;7!L:65D('=A<G)A;G1I97, ;V8 ;65R8VAA;G1A8FEL:71Y(&%N
M9 T*("H ("  ("  ("  ("  (&9I=&YE<W, 9F]R(&$ <&%R=&EC=6QA<B!P
M=7)P;W-E(&%R92!D:7-C;&%I;65D+B!);B!N;R!E=F5N= T*("H ("  ("  
M("  ("  ('-H86QL('1H92!3>6YE<VES(%-O9G1W87)E(&)E(&QI86)L92!F

M:61E;G1A;"P <W!E8VEA;"P 97AE;7!L87)Y+"!O<B!C;VYS97%U96YT:6%L
M(&1A;6%G97,-"B J("  ("  ("  ("  (" H:6YC;'5D:6YG+"!B=70 ;F]T
M(&QI;6ET960 =&\L('!R;V-U<F5M96YT(&]F('-U8G-T:71U=&4 9V]O9',-
M"B J("  ("  ("  ("  ("!O<B!S97)V:6-E<SL ;&]S<R!O9B!U<V4L(&1A

M:6YT97)R=7!T:6]N*2!H;W=E=F5R(&-A=7-E9"!A;F0 ;VX 86YY('1H96]R

M;VYT<F%C="P <W1R:6-T(&QI86)I;&ET>2P ;W( =&]R=" H:6YC;'5D:6YG

M:7-I;F< :6X 86YY('=A>2!O=70 ;V8 =&AE('5S92!O9 T*("H ("  ("  
M("  ("  ('1H:7, <V]F='=A<F4L(&5V96X :68 861V:7-E9"!O9B!T:&4 
M<&]S<VEB:6QI='D ;V8 <W5C: T*("H ("  ("  ("  ("  (&1A;6%G92X-





M3TX-"B, 9&5F:6YE(%]35$Q33T947U9%4E](7U-43%-/1E1?0TA!4E]44D%)
M5%-?34%*3U( ("  ("  ,0T*(R!D969I;F4 7U-43%-/1E1?5D527TA?4U1,


M"B, 9&5F:6YE(%]35$Q33T947U9%4E](7U-43%-/1E1?0TA!4E]44D%)5%-?
M141)5"  ("  ("  ,S -"B-E;F1I9B O*B A7U]35$Q33T947T1/0U5-14Y4

M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O


M(B  ("  ("  ("  ("  ("\O($EN8VQU9&4 =&AE(%-43%-O9G0 <F]O="!H


M"B, :6YC;'5D92 B<W1L<V]F=%]S:6=N7W1R86ET<RYH(B  ("\O('-T;'-O






M=V-H87(N:#X-

M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O


M9B O*B!?4U1,4T]&5%].3U].04U%4U!!0T4 *B\-" T*+RH +R\O+R\O+R\O
M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O

M" T*+R\ 8VQA<W, <W1L<V]F=%]C:&%R7W1R86ET<PT*+R\O($-H87)A8W1E

M90T*+R\O(%QP87)A;2!.(%1H92!I;G1E9V5R('1Y<&4-"B\O+R!<<&%R86T 

M;5]K($,-"B  ("  ("  / T*<W1R=6-T('-T;'-O9G1?8VAA<E]T<F%I=',-
M"GL-"G!U8FQI8SH-"B  (" O+R\ 5&AE(&-H87( ='EP90T*("  ('1Y<&5D
M968 0R  ("  ("  ("  ("  ("  ("  ("  ("  ("  ("  ("  8VAA<E]T
M>7!E.PT*("  ("\O+R!4:&4 8W5R<F5N="!P87)A;65T97)I<V%T:6]N(&]F

M("  ("  ("  ("  ("!C;&%S<U]T>7!E.PT*("  ("\O+R!4:&4 :6YT96=E

M("  ("  ("  ("!I;G1?='EP93L-"B  (" O+R\ 5&AE('-I>F4 ='EP90T*
M("  ('1Y<&5D968 <W-?<VEZ95]T("  ("  ("  ("  ("  ("  ("  ("  
M("  <VEZ95]T>7!E.PT*("  ("\O+R!4:&4 <&]S:71I;VX ='EP90T*("  
M('1Y<&5D968 <W-?<W1R96%M<&]S7W0 ("  ("  ("  ("  ("  ("  ("  

M968 <W-?<W1R96%M;V9F7W0 ("  ("  ("  ("  ("  ("  ("  ;V9F7W1Y




M<R!O9B!V86QU92!<8R!C('1O(%QC(&1E<W0-"B  ("!S=&%T:6, 8VAA<E]T
M>7!E("IA<W-I9VXH8VAA<E]T>7!E("ID97-T+"!S:7IE7W1Y<&4 8V-H+"!C


M<E]T<F%I=',\6#XZ.F%S<VEG;B!C86QL960 =VET:"!.54Q,(&1E<W1I;F%T
M:6]N(BP ," ]/2!C8V  ?'P 3E5,3" A/2!D97-T*3L-" T*("  ("  ("!F
M;W(H<F5T(#T 9&5S=#L ," \(&-C:#L +2UC8V L("LK9&5S="D-"B  ("  
M("  >PT*("  ("  ("  ("  87-S:6=N*"ID97-T+"!C*3L-"B  ("  ("  

M86QU871E<R!W:&5T:&5R(%QC(&QH<R!I<R!E<75I=F%L96YT('1O(%QC(')H
M<PT*("  ('-T871I8R!S<U]B;V]L7W0 97$H8VAA<E]T>7!E(&-O;G-T("9L
M:',L(&-H87)?='EP92!C;VYS=" F<FAS*0T*("  ('L-"B  ("  ("  <F5T


M('-S7V)O;VQ?="!L="AC:&%R7W1Y<&4 8V]N<W0 )FQH<RP 8VAA<E]T>7!E




M("  +R\O(%QR971V86P ,"!S,2!I<R!L97AI8V]G<F%P:&EC86QL>2!E<75A
M;"!T;R!S, T*("  ("\O+R!<<F5T=F%L(#XP(',Q(&ES(&QE>&EC;V=R87!H
M:6-A;&QY(&UO<F4 =&AA;B!S, T*("  ('-T871I8R!I;G1?='EP92!C;VUP
M87)E*&-H87)?='EP92!C;VYS=" J<S$L(&-H87)?='EP92!C;VYS=" J<S(L

M9V5?87-S97)T*")C:&%R7W1R86ET<SQ8/CHZ8V]M<&%R92!C86QL960 =VET

M("  ("!S=&QS;V9T7VUE<W-A9V5?87-S97)T*")C:&%R7W1R86ET<SQ8/CHZ


M(&X /"!C8V [("LK;BP *RMS,2P *RMS,BD-"B  ("  ("  >PT*("  ("  
M("  ("  :68H(65Q*"IS,2P *G,R*2D-"B  ("  ("  ("  ('L-"B  ("  


M("  ('T-" T*("  ('-T871I8R!I;G1?='EP92!C;VUP87)E7VUA>"AC:&%R
M7W1Y<&4 8V]N<W0 *G,Q+"!C:&%R7W1Y<&4 8V]N<W0 *G,R+"!S:7IE7W1Y
M<&4 8V-H*0T*("  ('L-"B  ("  ("  <W1L<V]F=%]M97-S86=E7V%S<V5R
M=" B8VAA<E]T<F%I=',\6#XZ.F-O;7!A<F5?;6%X(&-A;&QE9"!W:71H($Y5

M('-T;'-O9G1?;65S<V%G95]A<W-E<G0H(F-H87)?=')A:71S/% ^.CIC;VUP


M(&X /"!C8V [("LK;BP *RMS,2P *RMS,BD-"B  ("  ("  >PT*("  ("  
M("  ("  :68H(65Q*"IS,2P *G,R*2D-"B  ("  ("  ("  ('L-"B  ("  

M("  ("  ("  ('T-"B  ("  ("  ("  (&5L<V4 :68H97$H*G,Q+"!C:&%R
M7W1Y<&4H,"DI*0T*("  ("  ("  ("  >PT*("  ("  ("  ("  ("  (&)R


M87)E*"DL(%QC(',Q('=I=&  7&, <S(L(&5I=&AE<B!O<B!B;W1H(&]F('=H

M<F5?;G5L;"AC:&%R7W1Y<&4 8V]N<W0 *G,Q+"!C:&%R7W1Y<&4 8V]N<W0 
M*G,R+"!S:7IE7W1Y<&4 8V-H*0T*("  ('L-"B  ("  ("  :6YT7W1Y<&4 

M('L-"B  ("  ("  ("  (')E<W5L=" ]("A.54Q,(#T

M("  ("  (')E<W5L=" ]("A.54Q,(#T


M7VUA>" I+"!<8R!S,2!W:71H(%QC(',R+"!E:71H97( ;W( 8F]T:"!O9B!W
M:&EC:"!M87D 8F4 7&, ;G5L; T*("  ('-T871I8R!I;G1?='EP92!C;VUP
M87)E7VUA>&YU;&PH8VAA<E]T>7!E(&-O;G-T("IS,2P 8VAA<E]T>7!E(&-O

M>7!E("  (')E<W5L=#L-" T*("  ("  ("!I9BA.54Q,(#T](',Q*0T*("  

M(#H
M("  ("  ("  ("!R97-U;'0 /2 H3E5,3" ]/2!S,BD /R Q(#H 8V]M<&%R

M=7)N(')E<W5L=#L-

M92!L96YG=& H8VAA<E]T>7!E(&-O;G-T("IS*0T*("  ('L-"B  ("  ("  
M<VEZ95]T>7!E(&-C:#L-" T*("  ("  ("!S=&QS;V9T7VUE<W-A9V5?87-S
M97)T*")C:&%R7W1R86ET<SQ8/CHZ;&5N9W1H(&-A;&QE9"!W:71H($Y53$P 
M<W1R:6YG(BP 3E5,3" A/2!S*3L-" T*("  ("  ("!F;W(H8V-H(#T ,#L 


M:#L-
M=&AE('-T<FEN9R!<8R!S+"!W:&EC:"!M87D 8F4 7&, ;G5L; T*("  ('-T
M871I8R!S:7IE7W1Y<&4 ;&5N9W1H7VYU;&PH8VAA<E]T>7!E(&-O;G-T("IS

M*',I(#H ,#L-
M=&  ;V8 =&AE('-T<FEN9R!<8R!S('5P('1O(&$ 9VEV96X ;G5M8F5R(&]F
M(&-H87)A8W1E<G,-"B  (" O+R\-"B  (" O+R\ 7'!A<F%M(', 5&AE('-T
M<FEN9R!T;R!B92!E=F%L=6%T960N($ET(&UA>2 \8CYN;W0\+V(^(&)E(&YU
M;&P-"B  (" O+R\ 7'!A<F%M(', 5&AE(&UA>&EM=6T ;G5M8F5R(&]F(&-H
M87)A8W1E<G, =&\ 979A;'5A=&4-"B  (" O+R\ 7')E='5R;B!4:&4 ;&5N
M9W1H(&]F('1H92!S=')I;F< *&EN(&-H87)A8W1E<G,I(&YO="!I;F-L=61I
M;F< =&AE(&YU;&PM=&5R;6EN871O< T*("  ('-T871I8R!S:7IE7W1Y<&4 
M;&5N9W1H7VUA>"AC:&%R7W1Y<&4 8V]N<W0 *G,L('-I>F5?='EP92!L:6UI

M<W1L<V]F=%]M97-S86=E7V%S<V5R=" B8VAA<E]T<F%I=',\6#XZ.FQE;F=T
M:%]M87  8V%L;&5D('=I=&  3E5,3"!S=')I;F<B+"!.54Q,("$](',I.PT*

M(&-H87)?='EP92 P*2D[("LK<RD-"B  ("  ("  >PT*("  ("  ("  ("  

M('T-" T*("  ("\O+R!%=F%L=6%T97, =&AE(&QE;F=T:"!O9B!T:&4 <W1R
M:6YG(%QC(',L('=H:6-H(&UA>2!B92!<8R!N=6QL+"!U<"!T;R!A(&=I=F5N

M;2!S(%1H92!S=')I;F< =&\ 8F4 979A;'5A=&5D+B!)="!M87D 8F4 ;G5L
M; T*("  ("\O+R!<<&%R86T <R!4:&4 ;6%X:6UU;2!N=6UB97( ;V8 8VAA
M<F%C=&5R<R!T;R!E=F%L=6%T90T*("  ("\O+R!<<F5T=7)N(%1H92!L96YG
M=&  ;V8 =&AE('-T<FEN9R H:6X 8VAA<F%C=&5R<RD ;F]T(&EN8VQU9&EN

M96YG=&A?;6%X7VYU;&PH8VAA<E]T>7!E(&-O;G-T("IS+"!S:7IE7W1Y<&4 


M<&EE<R!<8R!C8V  8VAA<F%C=&5R<R!F<F]M(%QC('-R8R!T;R!<8R!D97-T

M(&-H87)?='EP92!C;VYS=" J<W)C+"!S:7IE7W1Y<&4 8V-H*0T*("  ('L-
M"B  ("  ("  8VAA<E]T>7!E("  *G)E=#L-" T*("  ("  ("!S=&QS;V9T
M7VUE<W-A9V5?87-S97)T*")C:&%R7W1R86ET<SQ8/CHZ8V]P>2!C86QL960 
M=VET:"!.54Q,(&1E<W1I;F%T:6]N(BP ," ]/2!C8V  ?'P 3E5,3" A/2!D
M97-T*3L-"B  ("  ("  <W1L<V]F=%]M97-S86=E7V%S<V5R=" B8VAA<E]T
M<F%I=',\6#XZ.F-O<'D 8V%L;&5D('=I=&  3E5,3"!S;W5R8V4B+" P(#T]




M:65S(%QC(&-C:"!C:&%R86-T97)S(&9R;VT 7&, <W)C('1O(%QC(&1E<W0L

M("  <W1A=&EC(&-H87)?='EP92 J;6]V92AC:&%R7W1Y<&4 *F1E<W0L(&-H
M87)?='EP92!C;VYS=" J<W)C+"!S:7IE7W1Y<&4 8V-H*0T*("  ('L-"B  

M('-T;'-O9G1?;65S<V%G95]A<W-E<G0H(F-H87)?=')A:71S/% ^.CIM;W9E
M(&-A;&QE9"!W:71H($Y53$P 9&5S=&EN871I;VXB+" P(#T](&-C:"!\?"!.
M54Q,("$](&1E<W0I.PT*("  ("  ("!S=&QS;V9T7VUE<W-A9V5?87-S97)T
M*")C:&%R7W1R86ET<SQ8/CHZ;6]V92!C86QL960 =VET:"!.54Q,('-O=7)C

M<W)C(#P 9&5S=" F) T*("  ("  ("  ("  9&5S=" \('-R8R K(&-C:"D-
M"B  ("  ("  >PT*("  ("  ("  ("  9F]R*&1E<W0 *ST 8V-H+"!S<F, 
M*ST 8V-H.R P(#P 8V-H.R M+6-C:"D-"B  ("  ("  ("  ('L-"B  ("  
M("  ("  ("  ("!A<W-I9VXH*BTM9&5S="P *BTM<W)C*3L-"B  ("  ("  


M*0T*("  ("  ("  ("  >PT*("  ("  ("  ("  ("  (&%S<VEG;B J9&5S

M("!R971U<FX <F5T.PT*("  ('T-" T*("  ("\O+R!&:6YD<R!T:&4 9FER
M<W0 7&, 8R!I;B!<8R!C8V  96QE;65N=', :6X 7&, <RP ;W( 7&, 3E5,
M3"!I9B!N;W0 9F]U;F0-"B  ("!S=&%T:6, 8VAA<E]T>7!E(&-O;G-T("IF
M:6YD*&-H87)?='EP92!C;VYS=" J<RP <VEZ95]T>7!E(&-C:"P 8VAA<E]T
M>7!E(&-O;G-T("9C*0T*("  ('L-"B  ("  ("  <W1L<V]F=%]M97-S86=E
M7V%S<V5R=" B8VAA<E]T<F%I=',\6#XZ.F9I;F0 8V%L;&5D('=I=&  3E5,
M3"!S=')I;F<B+" P(#T

M("  ("  (&EF*&5Q*"IS+"!C*2D-"B  ("  ("  ("  ('L-"B  ("  ("  

M("  ("  (')E='5R;B H," \(&-C:"D /R!S(#H 3E5,3#L-
M"B  (" O+R\ 4F5P<F5S96YT<R!T:&4 8VAA<F%C=&5R(%QC(&EN('1H92!C
M:&%R86-T97( ='EP92!<8R!C:&%R7W1Y<&4-"B  ("!S=&%T:6, 8VAA<E]T

M("  ("  (')E='5R;B!S=&%T:6-?8V%S=#QC:&%R7W1Y<&4^*&,I.PT*("  
M('T-" T*("  ("\O+R!297!R97-E;G1S('1H92!C:&%R86-T97( 7&, :6X 
M=&AE(&EN=&5G97( ='EP92!<8R!I;G1?='EP90T*("  ('-T871I8R!I;G1?

M(VEF(&1E9FEN960H7U]35$Q33T947T-/35!)3$527TE37U=!5$-/32D-"B  

M971U<FX <W1A=&EC7V-A<W0\:6YT7W1Y<&4^*'-T871I8U]C87-T/'-S7W1Y
M<&5N86UE7W1Y<&5?:R!S:6=N7W1R86ET<SQC:&%R7W1Y<&4^.CIU;G-I9VYE

M7U=!5$-/32 J+PT*("  ('T-" T*("  ("\O+R!%=F%L=6%T97, =VAE=&AE
M<B!<8R!L:', 86YD(%QC(')H<R!A<F4 97%U:79A;&5N= T*("  ('-T871I
M8R!S<U]B;V]L7W0 97%?:6YT7W1Y<&4H:6YT7W1Y<&4 8V]N<W0 )FQH<RP 

M:', /3T <FAS.PT*("  ('T-" T*("  ("\O+R!2971U<FYS('1H92!V86QU
M92!R97!R97-E;G1I;F< =&AE(&5N9"UO9BUF:6QE+ T*("  ('-T871I8R!I
M;G1?='EP92!E;V8H*0T*("  ('L-"B  ("  ("  <F5T=7)N('-T871I8U]C

M<R!W:&5T:&5R('1H92!G:79E;B!C:&%R86-T97( :7, =&AE(&5N9"UO9BUF
M:6QE+ T*("  ('-T871I8R!I;G1?='EP92!N;W1?96]F*&EN=%]T>7!E(&-O



M('1H92!O<&5R871I;VYS(&]F('=H:6-H(&-A;B!W;W)K('=I=&  ;G5L;"!P


M(%1H92!S:7IE('1Y<&4-"G1E;7!L871E/"  ('-S7W1Y<&5N86UE7W!A<F%M



M("  ("  ("  ("  ("!P87)E;G1?8VQA<W-?='EP93L-"G!U8FQI8SH-"B  


M+R\O(%1H92!C=7)R96YT('!A<F%M971E<FES871I;VX ;V8 =&AE('1Y<&4-


M("!T>7!E9&5F('-S7VEN=%]T("  ("  ("  ("  ("  ("  ("  ("  ("  

M9B!S<U]S:7IE7W0 ("  ("  ("  ("  ("  ("  ("  ("  ("!S:7IE7W1Y

M<U]S=')E86UP;W-?="  ("  ("  ("  ("  ("  ("  ("!P;W-?='EP93L-

M86UO9F9?="  ("  ("  ("  ("  ("  ("  ("!O9F9?='EP93L-" T*<'5B
M;&EC. T*("  ("\O+R!!<W-I9VYS(%QC(')H<R!T;R!<8R!L:',-"B  ("!S
M=&%T:6, =F]I9"!A<W-I9VXH8VAA<E]T>7!E("9L:',L(&-H87)?='EP92!C
M;VYS=" F<FAS*0T*("  ('L-"B  ("  ("  <&%R96YT7V-L87-S7W1Y<&4Z


M("  <W1A=&EC(&-H87)?='EP92 J87-S:6=N*&-H87)?='EP92 J9&5S="P 
M<VEZ95]T>7!E(&-C:"P 8VAA<E]T>7!E(&-O;G-T("9C*0T*("  ('L-"B  
M("  ("  <W1L<V]F=%]M97-S86=E7V%S<V5R=" B8VAA<E]T<F%I='-?<V%F
M93Q8/CHZ87-S:6=N(&-A;&QE9"!W:71H($Y53$P 9&5S=&EN871I;VXB+"!.


M($5V86QU871E<R!W:&5T:&5R(%QC(&QH<R!I<R!E<75I=F%L96YT('1O(%QC
M(')H<PT*("  ('-T871I8R!S<U]B;V]L7W0 97$H8VAA<E]T>7!E(&-O;G-T
M("9L:',L(&-H87)?='EP92!C;VYS=" F<FAS*0T*("  ('L-"B  ("  ("  




M("  ("  ("!R971U<FX <&%R96YT7V-L87-S7W1Y<&4Z.FQT*&QH<RP <FAS

M<G, ;V8 7&, <S$ =VET:"!<8R!S, T*("  ("\O+PT*("  ("\O+R!<<F5T
M=F%L(#PP(',Q(&ES(&QE>&EC;V=R87!H:6-A;&QY(&QE<W, =&AA;B!S, T*

M86P =&\ <S(-"B  (" O+R\ 7')E='9A;" ^,"!S,2!I<R!L97AI8V]G<F%P
M:&EC86QL>2!M;W)E('1H86X <S(-"B  ("!S=&%T:6, :6YT7W1Y<&4 8V]M
M<&%R92AC:&%R7W1Y<&4 8V]N<W0 *G,Q+"!C:&%R7W1Y<&4 8V]N<W0 *G,R
M+"!S:7IE7W1Y<&4 8V-H*0T*("  ('L-"B  ("  ("  <F5T=7)N(&-O;7!A

M=%]T>7!E(&-O;7!A<F5?;6%X*&-H87)?='EP92!C;VYS=" J<S$L(&-H87)?

M("!R971U<FX 8V]M<&%R95]M87AN=6QL*',Q+"!S,BP 8V-H*3L-"B  ("!]

M=VET:"!<8R!S,BP 96ET:&5R(&]R(&)O=&  ;V8 =VAI8V  ;6%Y(&)E(%QC
M(&YU;&P-"B  ("!S=&%T:6, :6YT7W1Y<&4 8V]M<&%R95]N=6QL*&-H87)?
M='EP92!C;VYS=" J<S$L(&-H87)?='EP92!C;VYS=" J<S(L('-I>F5?='EP


M;VUP87)E<RP =7-I;F< 8V]M<&%R95]M87 H*2P 7&, <S$ =VET:"!<8R!S
M,BP 96ET:&5R(&]R(&)O=&  ;V8 =VAI8V  ;6%Y(&)E(%QC(&YU;&P-"B  
M("!S=&%T:6, :6YT7W1Y<&4 8V]M<&%R95]M87AN=6QL*&-H87)?='EP92!C
M;VYS=" J<S$L(&-H87)?='EP92!C;VYS=" J<S(L('-I>F5?='EP92!C8V I


M($5V86QU871E<R!T:&4 ;&5N9W1H(&]F('1H92!S=')I;F< 7&, <R!U<"!T

M+R\O(%QP87)A;2!S(%1H92!S=')I;F< =&\ 8F4 979A;'5A=&5D+B!)="!M
M87D 8F4 ;G5L; T*("  ("\O+R!<<&%R86T <R!4:&4 ;6%X:6UU;2!N=6UB
M97( ;V8 8VAA<F%C=&5R<R!T;R!E=F%L=6%T90T*("  ("\O+R!<<F5T=7)N
M(%1H92!L96YG=&  ;V8 =&AE('-T<FEN9R H:6X 8VAA<F%C=&5R<RD ;F]T

M>F5?='EP92!L96YG=&A?;6%X7VYU;&PH8VAA<E]T>7!E(&-O;G-T("IS+"!S

M/3T <RD /R P(#H <&%R96YT7V-L87-S7W1Y<&4Z.FQE;F=T:%]M87 H<RP 
M;&EM:70I.PT*("  ('T-" T*("  ("\O+R!%=F%L=6%T97, =&AE(&QE;F=T
M:"!O9B!T:&4 <W1R:6YG(%QC(',L('=H:6-H(&UA>2!B92!<8R!N=6QL+"!U

M("  +R\O(%QP87)A;2!S(%1H92!S=')I;F< =&\ 8F4 979A;'5A=&5D+B!)
M="!M87D 8F4 ;G5L; T*("  ("\O+R!<<&%R86T <R!4:&4 ;6%X:6UU;2!N
M=6UB97( ;V8 8VAA<F%C=&5R<R!T;R!E=F%L=6%T90T*("  ("\O+R!<<F5T
M=7)N(%1H92!L96YG=&  ;V8 =&AE('-T<FEN9R H:6X 8VAA<F%C=&5R<RD 

M('-I>F5?='EP92!L96YG=&A?;6%X*&-H87)?='EP92!C;VYS=" J<RP <VEZ
M95]T>7!E(&QI;6ET*0T*("  ('L-"B  ("  ("  <F5T=7)N(&QE;F=T:%]M

M<R!T:&4 ;&5N9W1H(&]F('1H92!S=')I;F< 7&, <RP =VAI8V  ;6%Y(&)E
M(%QC(&YU;&P-"B  ("!S=&%T:6, <VEZ95]T>7!E(&QE;F=T:%]N=6QL*&-H


M("  ('T-" T*("  ("\O+R!%=F%L=6%T97, =&AE(&QE;F=T:"!O9B!T:&4 
M<W1R:6YG(%QC(',-"B  ("!S=&%T:6, <VEZ95]T>7!E(&QE;F=T:"AC:&%R



M87)?='EP92 J8V]P>2AC:&%R7W1Y<&4 *F1E<W0L(&-H87)?='EP92!C;VYS
M=" J<W)C+"!S:7IE7W1Y<&4 8V-H*0T*("  ('L-"B  ("  ("  <W1L<V]F
M=%]M97-S86=E7V%S<V5R=" B8VAA<E]T<F%I='-?<V%F93Q8/CHZ8V]P>2!C
M86QL960 =VET:"!.54Q,(&1E<W1I;F%T:6]N(BP 3E5,3" A/2!D97-T*3L-
M"B  ("  ("  <W1L<V]F=%]M97-S86=E7V%S<V5R=" B8VAA<E]T<F%I='-?
M<V%F93Q8/CHZ8V]P>2!C86QL960 =VET:"!.54Q,('-O=7)C92(L($Y53$P 
M(3T <W)C*3L-" T*("  ("  ("!R971U<FX <&%R96YT7V-L87-S7W1Y<&4Z

M97, 7&, 8V-H(&-H87)A8W1E<G, 9G)O;2!<8R!S<F, =&\ 7&, 9&5S="P 
M86-C;W5N=&EN9R!F;W( =VAE=&AE<B!T:&4 <F%N9V5S(&]V97)L87 -"B  
M("!S=&%T:6, 8VAA<E]T>7!E("IM;W9E*&-H87)?='EP92 J9&5S="P 8VAA

M("  ("!S=&QS;V9T7VUE<W-A9V5?87-S97)T*")C:&%R7W1R86ET<U]S869E
M/% ^.CIM;W9E(&-A;&QE9"!W:71H($Y53$P 9&5S=&EN871I;VXB+"!.54Q,
M("$](&1E<W0I.PT*("  ("  ("!S=&QS;V9T7VUE<W-A9V5?87-S97)T*")C
M:&%R7W1R86ET<U]S869E/% ^.CIM;W9E(&-A;&QE9"!W:71H($Y53$P <V]U


M("  +R\O($9I;F1S('1H92!F:7)S="!<8R!C(&EN(%QC(&-C:"!E;&5M96YT
M<R!I;B!<8R!S+"!O<B!<8R!.54Q,(&EF(&YO="!F;W5N9 T*("  ('-T871I
M8R!C:&%R7W1Y<&4 8V]N<W0 *F9I;F0H8VAA<E]T>7!E(&-O;G-T("IS+"!S

M("  ("!R971U<FX *$Y53$P /3T <RD /R!.54Q,(#H <&%R96YT7V-L87-S

M<F5S96YT<R!T:&4 8VAA<F%C=&5R(%QC(&EN('1H92!C:&%R86-T97( ='EP
M92!<8R!C:&%R7W1Y<&4-"B  ("!S=&%T:6, 8VAA<E]T>7!E('1O7V-H87)?

M;B!P87)E;G1?8VQA<W-?='EP93HZ=&]?8VAA<E]T>7!E*&,I.PT*("  ('T-
M" T*("  ("\O+R!297!R97-E;G1S('1H92!C:&%R86-T97( 7&, :6X =&AE
M(&EN=&5G97( ='EP92!<8R!I;G1?='EP90T*("  ('-T871I8R!I;G1?='EP

M("  ("!R971U<FX <&%R96YT7V-L87-S7W1Y<&4Z.G1O7VEN=%]T>7!E*&,I
M.PT*("  ('T-" T*("  ("\O+R!%=F%L=6%T97, =VAE=&AE<B!<8R!L:', 
M86YD(%QC(')H<R!A<F4 97%U:79A;&5N= T*("  ('-T871I8R!S<U]B;V]L
M7W0 97%?:6YT7W1Y<&4H:6YT7W1Y<&4 8V]N<W0 )FQH<RP :6YT7W1Y<&4 

M<W-?='EP93HZ97%?:6YT7W1Y<&4H;&AS+"!R:',I.PT*("  ('T-" T*("  
M("\O+R!2971U<FYS('1H92!V86QU92!R97!R97-E;G1I;F< =&AE(&5N9"UO
M9BUF:6QE+ T*("  ('-T871I8R!I;G1?='EP92!E;V8H*0T*("  ('L-"B  
M("  ("  <F5T=7)N('!A<F5N=%]C;&%S<U]T>7!E.CIE;V8H*3L-"B  ("!]





M(%P-"B  (" A9&5F:6YE9"A?7U-43%-/1E1?0T9?<W1D7V-H87)?=')A:71S

M86-T97( =')A:71S+"!A;&P ;V8 =&AE(&]P97)A=&EO;G, ;V8 =VAI8V  

M0R!4:&4 8VAA<F%C=&5R('1Y<&4-"B\O+R!<<&%R86T 3B!4:&4 :6YT96=E


M:&%R7W1R86ET<PT*("  (#H <'5B;&EC('-T;'-O9G1?8VAA<E]T<F%I=',\
M0SX-"GL-"B  ("!T>7!E9&5F('-T;'-O9G1?8VAA<E]T<F%I=',\0SX ("  
M("  ("  ("  ("  ("  ("  ("  ('!A<F5N=%]C;&%S<U]T>7!E.PT*<'5B
M;&EC. T*("  ("\O+R!4:&4 8W5R<F5N="!P87)A;65T97)I<V%T:6]N(&]F

M("  ("  ("  ("  ("  ("  ("  ("  ("!C;&%S<U]T>7!E.PT*("  ("\O
M+R!4:&4 8VAA<F%C=&5R('1Y<&4-"B  ("!T>7!E9&5F('-S7W1Y<&5N86UE
M7W1Y<&5?:R!P87)E;G1?8VQA<W-?='EP93HZ8VAA<E]T>7!E(&-H87)?='EP
M93L-"B  ("!T>7!E9&5F('-S7W1Y<&5N86UE7W1Y<&5?:R!P87)E;G1?8VQA
M<W-?='EP93HZ:6YT7W1Y<&4 (&EN=%]T>7!E.PT*("  ('1Y<&5D968 <W-?
M='EP96YA;65?='EP95]K('!A<F5N=%]C;&%S<U]T>7!E.CIS:7IE7W1Y<&4 
M<VEZ95]T>7!E.PT*("  ('1Y<&5D968 <W-?='EP96YA;65?='EP95]K('!A

M961E9B!S<U]T>7!E;F%M95]T>7!E7VL <&%R96YT7V-L87-S7W1Y<&4Z.F]F



M+R\-"B\O+R!<<&%R86T 0R!4:&4 8VAA<F%C=&5R('1Y<&4-"B\O+R!<<&%R


M("  (#X-

M=&QS;V9T7V-H87)?=')A:71S7W-A9F4\0SX ("  ("  ("  ("  ("  ("  
M("!P87)E;G1?8VQA<W-?='EP93L-"G!U8FQI8SH-"B  (" O+R\ 5&AE(&-U
M<G)E;G0 <&%R86UE=&5R:7-A=&EO;B!O9B!T:&4 ='EP90T*("  ('1Y<&5D

M("  ("  8VQA<W-?='EP93L-"B  (" O+R\ 5&AE(&-H87)A8W1E<B!T>7!E


M>7!E;F%M95]T>7!E7VL <&%R96YT7V-L87-S7W1Y<&4Z.FEN=%]T>7!E("!I
M;G1?='EP93L-"B  ("!T>7!E9&5F('-S7W1Y<&5N86UE7W1Y<&5?:R!P87)E
M;G1?8VQA<W-?='EP93HZ<VEZ95]T>7!E('-I>F5?='EP93L-"B  ("!T>7!E
M9&5F('-S7W1Y<&5N86UE7W1Y<&5?:R!P87)E;G1?8VQA<W-?='EP93HZ<&]S
M7W1Y<&4 ('!O<U]T>7!E.PT*("  ('1Y<&5D968 <W-?='EP96YA;65?='EP


M5$Q33T947T-&7W-T9%]C:&%R7W1R86ET<U]!5D%)3$%"3$4 *B\-" T*+RH 
M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O
M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\-"B J(%-P96-I86QI

M5%)!25137TQ)0E)!4EE?0T%,3%,I("8F(%P-"B  (" A9&5F:6YE9"A?7U-4

M1E1?5$5-4$Q!5$5?4U!%0TE!3$E3051)3TX-"FEN;&EN92!C:&%R("IS=&QS
M;V9T7V-H87)?=')A:71S/&-H87(^.CIA<W-I9VXH8VAA<B J9&5S="P <W-?
M<VEZ95]T(&-C:"P 8VAA<B!C;VYS=" F8RD-"GL-"B  ("!R971U<FX <W1A
M=&EC7V-A<W0\8VAA<BH^*&UE;7-E="AD97-T+"!C+"!C8V  *B!S:7IE;V8H

M3 T*:6YL:6YE('-S7VEN=%]T('-T;'-O9G1?8VAA<E]T<F%I=',\8VAA<CXZ
M.F-O;7!A<F4H8VAA<E]T>7!E(&-O;G-T("IS,2P 8VAA<E]T>7!E(&-O;G-T
M("IS,BP <W-?<VEZ95]T(&-C:"D-"GL-"B  ("!R971U<FX ;65M8VUP*',Q

M5$E/3 T*:6YL:6YE(&-H87( 8V]N<W0 *G-T;'-O9G1?8VAA<E]T<F%I=',\
M8VAA<CXZ.F9I;F0H8VAA<E]T>7!E(&-O;G-T("IS+"!S:7IE7W1Y<&4 8V-H


M3%-/1E1?5$5-4$Q!5$5?4U!%0TE!3$E3051)3TX-"FEN;&EN92!C:&%R("IS
M=&QS;V9T7V-H87)?=')A:71S/&-H87(^.CIC;W!Y*&-H87( *F1E<W0L(&-H
M87( 8V]N<W0 *G-R8RP <W-?<VEZ95]T(&-C:"D-"GL-"B  ("!R971U<FX 
M<W1A=&EC7V-A<W0\8VAA<BH^*&UE;6-P>2AD97-T+"!S<F,L(&-C:" J('-I


M8VAA<CXZ.FQE;F=T:"AC:&%R(&-O;G-T("IS*0T*>PT*("  (')E='5R;B!S


M7V-H87)?=')A:71S/'=C:&%R7W0^.CIL96YG=& H=V-H87)?="!C;VYS=" J



M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O



M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O


M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O

`
end
Dec 29 2003
parent reply "Walter" <walter digitalmars.com> writes:
No, I'm not aware of it.

"Matthew" <matthew.hat stlsoft.dot.org> wrote in message
news:bsop4l$1g7i$1 digitaldaemon.com...
 Walter

 STLSoft has its own char_traits type, and I've recently added some
 specialisations, on a function level, to it.

 Unfortunately DMC++ reports that the in-class function is invalid because
 its already seen a definition outside the class - the specialisation.

 Is this something you're aware of? I'm including file, as I haven't time
to
 prepare an example atm.

 Cheers


 --
 Matthew Wilson

 STLSoft moderator (http://www.stlsoft.org)
 Contributing editor, C/C++ Users Journal
 (www.synesis.com.au/articles.html#columns)

 "You can tell a Yorkshireman, but you can't tell him much!" -- Uncle
Michael
 --------------------------------------------------------------------------
--
 ---
Jan 01 2004
parent "Matthew" <matthew.hat stlsoft.dot.org> writes:
I've tried to reproduce this but failed, so best to ignore for the moment.
;)

"Walter" <walter digitalmars.com> wrote in message
news:bt27ls$ge$2 digitaldaemon.com...
 No, I'm not aware of it.

 "Matthew" <matthew.hat stlsoft.dot.org> wrote in message
 news:bsop4l$1g7i$1 digitaldaemon.com...
 Walter

 STLSoft has its own char_traits type, and I've recently added some
 specialisations, on a function level, to it.

 Unfortunately DMC++ reports that the in-class function is invalid
because
 its already seen a definition outside the class - the specialisation.

 Is this something you're aware of? I'm including file, as I haven't time
to
 prepare an example atm.

 Cheers


 --
 Matthew Wilson

 STLSoft moderator (http://www.stlsoft.org)
 Contributing editor, C/C++ Users Journal
 (www.synesis.com.au/articles.html#columns)

 "You can tell a Yorkshireman, but you can't tell him much!" -- Uncle
Michael

 --------------------------------------------------------------------------
 --
 ---
Jan 21 2004