A lightweight module for class extensions in D

Nick Sabalausky a at a.a
Sun Dec 7 14:20:07 PST 2008


"Christopher Wright" <dhasenan at gmail.com> wrote in message 
news:ghgikj$2ckq$1 at digitalmars.com...
> Nick Sabalausky wrote:
>> I'd rather have a type that all other types derive from. Sort of like
>> "Object" (or is it "object"?), but serves as the base type for all types,
>> not just classes. Not sure if this would be possible though (having 
>> vtables
>> for every int and char in the program doesn't sound like a good idea 
>> ;) ).
>
> This would be convenient. I think, if Walter were for this idea, it'd be
> implemented via automatic boxing. That gives you the efficiency of using
> int, double, and so forth directly on the hardware. (It's how C# does it.)
>
> That said, I seriously doubt this will be a priority for Walter, ever.

I came across a need for it in a command-line parser I'm writing, but ended 
up having to define a boxing class myself ("RefBox!(T)", which can then be 
cast to "Object", although I should probably create a special base class for 
all the "RefBox!(T)"'s) and use a string mixin to clean up usage. I would 
much rather use a standardized boxer though. A "dynamic/variant" type would 
probably work too, but I don't like doing any runtime type variance other 
than polymorphism and boxing. If anyone's interested, my code is attached. I 
think the only part of my util module this uses is "stformat()" which is 
nothing more than the following helper code for Tango's Layout!(T):

Layout!(char) stformat;
static this()
{
 stformat = new Layout!(char)();
}


begin 666 cmdlineparser.d
M+R\@4V5M:51W:7-T($QI8G)A<GD-"B\O(%=R:71T96X@:6X@=&AE($0@<')O
M9W)A;6UI;F<@;&%N9W5A9V4N#0H-"B\J*B -"D%U=&AO<CH-"B0H5T5"('=W
M=RYS96UI='=I<W0N8V]M+"!.:6-K(%-A8F%L875S:WDI#0HJ+PT*#0IM;V1U
M;&4@<V5M:71W:7-T+F-M9&QI;F5P87)S97([#0H-"FEM<&]R="!T86YG;RYC
M;W)E+D%R<F%Y.PT*:6UP;W)T('1A;F=O+FEO+E-T9&]U=#L-"FEM<&]R="!T
M86YG;RYM871H+DUA=&@[#0II;7!O<G0@=&%N9V\N=&5X="Y5=&EL.PT*#0II
M;7!O<G0@<V5M:71W:7-T+G5T:6P[#0H-"B\J*@T*57-A9V4Z#0H-"G9O:60@
M;6%I;BAC:&%R6UU;72!A<F=S*0T*>PT*"6)O;VP@:&5L<#L-"@EB;V]L(&1E
M=&%I;&AE;' [#0H):6YT(&UY26YT(#T@,CL at +R\@1&5F875L="!V86QU92 ]
M/2 R#0H)8F]O;"!M>4)O;VP[(" @+R\@1&5F875L="!V86QU92 ]/2!B;V]L
M+FEN:70@*&EE+"!F86QS92D-"@EC:&%R6UT@;7E3='([(" O+R!$969A=6QT
M('9A;'5E(#T]("AC:&%R6UTI+FEN:70@*&EE+" B(BD-"@T*"6%U=&\@8VUD
M(#T@;F5W($-M9$QI;F5087)S97(H*3L-"@EM:7AI;BAD969I;F5!<F<A*&-M
M9"P@:&5L<"P@(" @(" @(D1I<W!L87ES(&$@:&5L<"!S=6UM87)Y(&%N9"!E
M>&ET<R(@*2D[#0H);6EX:6XH9&5F:6YE07)G(2AC;60L(&1E=&%I;&AE;' L
M(")$:7-P;&%Y<R!A(&1E=&%I;&5D(&AE;' @;65S<V%G92!A;F0 at 97AI=',B
M("DI.PT*"6UI>&EN*&1E9FEN94%R9R$H8VUD+"!M>4EN="P@(")!;B!I;G1E
M9V5R(BDI.PT*"6UI>&EN*&1E9FEN94%R9R$H8VUD+"!M>4)O;VPL(")!(&9L
M86<B*2D[#0H);6EX:6XH9&5F:6YE07)G(2AC;60L(&UY4W1R+" @(D$@<W1R
M:6YG(BDI.PT*"0T*"6EF*"%C;60N<&%R<V4H87)G<RD@?'P@:&5L<"D-"@E[
M#0H)"5-T9&]U="YF;W)M870H(GM](BP at 8VUD+F=E=%5S86=E*"DI.PT*"0ER
M971U<FX[#0H)?0T*"6EF*&1E=&%I;&AE;' I#0H)>PT*"0E3=&1O=70N9F]R
M;6%T*")[?2(L(&-M9"YG971$971A:6QE9%5S86=E*"DI.PT*"0ER971U<FX[
M#0H)?0T*#0H)4W1D;W5T+F9O<FUA=&QN*")M>4EN=#H@('M](BP@;7E);G0I
M.PT*"5-T9&]U="YF;W)M871L;B at B;7E";V]L.B![?2(L(&UY0F]O;"D[#0H)
M4W1D;W5T+F9O<FUA=&QN*")M>5-T<CH@('M](BP@;7E3='(I.PT*?0T*#0I3
M86UP;&4 at 0V]M;6%N9"!,:6YE<SH-"CX@;7E!<' N97AE("]M>4EN=#HU("]M
M>4)O;VP at +VUY4W1R.F)L86 at -"CX@;7E!<' N97AE("UM>4EN=#TU("UM>4)O
M;VPZ=')U92 M;7E3='(Z8FQA: T*/B!M>4%P<"YE>&4 at +2UM>4EN=#TU("]M
M>4)O;VPK("(M;7E3='(Z8FQA:"(-"FUY26YT.B @-0T*;7E";V]L.B!T<G5E
M#0IM>5-T<CH@(&)L86 at -"@T*/B!M>4%P<"YE>&4@(B]M>5-T<CI(96QL;R!7
M;W)L9"(-"FUY26YT.B @, at T*;7E";V]L.B!F86QS90T*;7E3='(Z("!(96QL
M;R!7;W)L9 T*#0H^(&UY07!P+F5X92 O9F]O#0I5;FMN;W=N('-W:71C:#H@
M(B]F;V\B#0I3=VET8VAE<SH@*'!R969I>&5S(&-A;B!B92 G+R<L("<M)R!O
M<B G+2TG*0T*(" O:&5L<" @(" @(" @(" @(" @($1I<W!L87ES(&$@:&5L
M<"!S=6UM87)Y(&%N9"!E>&ET<PT*(" O9&5T86EL:&5L<" @(" @(" @($1I
M<W!L87ES(&$@9&5T86EL960@:&5L<"!M97-S86=E(&%N9"!E>&ET<PT*(" O
M;7E);G0Z/&EN=#X@(" @(" @($%N(&EN=&5G97(@*&1E9F%U;'0Z(#(I#0H@
M("]M>4)O;VP@(" @(" @(" @(" @02!F;&%G#0H@("]M>5-T<CH\8VAA<EM=
M/B @(" @02!S=')I;F<-"B @#0HJ+PT*#0IT96UP;&%T92!D969I;F5!<F<H
M86QI87, at 8VUD3&EN95!A<G-E<BP at 86QI87,@=F%R+"!C:&%R6UT at 9&5S8RD-
M"GL-"@EC;VYS="!C:&%R6UT at 9&5F:6YE07)G(#T-"@D)(F%U=&\@7V-M9&%R
M9U]R969B;WA?(GYV87(N<W1R:6YG;V9^(B ](&YE=R!2969";W at A*")^='EP
M96]F*'9A<BDN<W1R:6YG;V9^(BDH)B)^=F%R+G-T<FEN9V]F?B(I.R)^#0H)
M"2)A=71O(%]C;61A<F=?(GYV87(N<W1R:6YG;V9^(B ](&YE=R!!<F<H7V-M
M9&%R9U]R969B;WA?(GYV87(N<W1R:6YG;V9^8"P@(F!^=F%R+G-T<FEN9V]F
M?F B+" B8'YD97-C?F B*3M@?@T*"0EC;61,:6YE4&%R<V5R+G-T<FEN9V]F
M?B(N861D07)G*%]C;61A<F=?(GYV87(N<W1R:6YG;V9^(BD[(CL-"@DO+W!R
M86=M82AM<V<L(")D969I;F5!<F<Z("(@?B!D969I;F5!<F<I.PT*?0T*#0HO
M+U1/1$\Z($%D9"!F;&]A="P at 9&]U8FQE+"!B>71E+"!S:&]R="P@;&]N9RP@
M86YD('5N<VEG;F5D(&]F(&5A8V at N#0H-"B\O($$@8F]X86)L92!W<F%P<&5R
M('5S969U;"!F;W(@=F%R:6%B;&5S(&]F('!R:6UI=&EV92!T>7!E<RX-"F-L
M87-S(%)E9D)O>"A4*0T*>PT*"7!R:79A=&4 at 5"H@=F%L.PT*"7!R:79A=&4@
M5"!O<'1I;VYA;%9A;%-R8SL-"@D-"@ET:&ES*"D-"@E[#0H)"71H:7,N=F%L
M(#T@)F]P=&EO;F%L5F%L4W)C.PT*"7T-"@D-"@ET:&ES*%0J('9A;"D-"@E[
M#0H)"71H:7,N=F%L(#T@=F%L.PT*"7T-"@D-"@E4(&]P0V%L;"@I#0H)>PT*
M"0ER971U<FX@*G9A;#L-"@E]#0H)#0H)=F]I9"!O<$%S<VEG;BA4('9A;"D-
M"@E[#0H)"2IT:&ES+G9A;" ]('9A;#L-"@E]#0H)#0H)8F]O;"!O<$5Q=6%L
M<RA2969";W at A*%0I('9A;"D-"@E[#0H)"7)E='5R;B J=&AI<RYV86P@/3T@
M*G9A;"YV86P[#0H)?0T*"0T*"6)O;VP@;W!%<75A;',H5"!V86PI#0H)>PT*
M"0ER971U<FX@*G1H:7,N=F%L(#T]('9A;#L-"@E]#0H)#0H)4F5F0F]X(2A4
M*2!D=7 H*0T*"7L-"@D)875T;R!N97=";W@@/2!N97<@4F5F0F]X(2A4*2 at I
M.PT*"0EN97=";W at N;W!T:6]N86Q686Q3<F,@/2 J=&AI<RYV86P[#0H)"7)E
M='5R;B!N97=";W@[#0H)?0T*?0T*#0IC:&%R6UT at 9V5T4F5F0F]X5'EP94YA
M;64H3V)J96-T(&\I#0I[#0H)8VAA<EM=(&AE860@/2 B4F5F0F]X(2 at B.PT*
M"6-H87);72!U;FMN;W=N(#T@(GMU;FMN;W=N?2([#0H)8VAA<EM=('1Y<&5.
M86UE(#T@;RYC;&%S<VEN9F\N;F%M93L-"@D-"@EA=71O('-T87)T(#T@;&]C
M871E4&%T=&5R;E!R:6]R*'1Y<&5.86UE+"!H96%D*3L-"@EI9BAS=&%R=" ]
M/2!T>7!E3F%M92YL96YG=&@I#0H)"7)E='5R;B!U;FMN;W=N.PT*"7-T87)T
M("L](&AE860N;&5N9W1H.PT*"0D-"@EA=71O(&5N9" ](&QO8V%T92AT>7!E
M3F%M92P@)RDG+"!S=&%R="D[#0H):68H96YD(#T]('1Y<&5.86UE+FQE;F=T
M:"D-"@D)<F5T=7)N('5N:VYO=VX[#0H)#0H)+R\@3F5S=&5D("@I(&EN<VED
M92 B4F5F0F]X(2 at N+BXI(B!I<R!N;W0 at 8W5R<F5N=&QY('-U<'!O<G1E9 T*
M"6EF*'1A;F=O+G1E>'0N571I;"YC;VYT86EN<RAT>7!E3F%M95MS=&%R="XN
M96YD72P@)R at G*2D-"@D)<F5T=7)N('5N:VYO=VX[#0H)"0T*"7)E='5R;B!T
M>7!E3F%M95MS=&%R="XN96YD73L-"GT-"@T*8VQA<W, at 07)G#0I[#0H)8VAA
M<EM=("!N86UE.PT*"6-H87);72 @86QT3F%M93L-"@EC:&%R6UT@(&1E<V,[
M#0H-"@EB;V]L(&ES1&5F875L=" @(" @/2!F86QS93L-"@EB;V]L(&ES4F5Q
M=6ER960@(" @/2!F86QS93L-"@EB;V]L(&%R<F%Y375L=&EP;&4@/2!F86QS
M93L-"@EB;V]L(&%R<F%Y56YI<75E(" @/2!F86QS93L-"@D-"@EP<FEV871E
M($]B:F5C="!V86QU93L-"@EP<FEV871E($]B:F5C="!D969A=6QT5F%L=64[
M#0H)#0H)=&AI<RA/8FIE8W0@=F%L=64L(&-H87);72!N86UE+"!C:&%R6UT@
M9&5S8RD-"@E[#0H)"6UI>&EN*&EN:71-96UB97(A*'9A;'5E+"!N86UE+"!D
M97-C*2D[#0H)"65N<W5R959A;&ED*"D[#0H)?0T*"0T*"7!R:79A=&4@=F]I
M9"!G96Y$969A=6QT5F%L=64H*0T*"7L-"@D)875T;R!V86Q!<TEN=" @/2!C
M87-T*%)E9D)O>"$H:6YT(" @*2EV86QU93L-"@D)875T;R!V86Q!<T)O;VP@
M/2!C87-T*%)E9D)O>"$H8F]O;" @*2EV86QU93L-"@D)875T;R!V86Q!<U-T
M<B @/2!C87-T*%)E9D)O>"$H8VAA<EM=*2EV86QU93L-"@T*"0EI9B @(" @
M*'9A;$%S26YT*2 @9&5F875L=%9A;'5E(#T@=F%L07-);G0N9'5P*"D[#0H)
M"65L<V4@:68H=F%L07-";V]L*2!D969A=6QT5F%L=64@/2!V86Q!<T)O;VPN
M9'5P*"D[#0H)"65L<V4@:68H=F%L07-3='(I("!D969A=6QT5F%L=64@/2!V
M86Q!<U-T<BYD=7 H*3L-"@E]#0H)#0H)=F]I9"!E;G-U<F5686QI9"@I#0H)
M>PT*"0DO+U1/1$\Z(&%R<F%Y375L=&EP;&4 at 86YD(&%R<F%Y56YI<75E(&-A
M;FYO="!B;W1H(&)E('-E= T*"0D)#0H)"6EF*" A8V%S="A2969";W at A*&EN
M=" @("DI=F%L=64@)B8-"@D)(" @("%C87-T*%)E9D)O>"$H8F]O;" @*2EV
M86QU92 F)@T*"0D@(" @(6-A<W0H4F5F0F]X(2AC:&%R6UTI*79A;'5E("D-
M"@D)>PT*"0D)=&AR;W<@;F5W($5X8V5P=&EO;B at B4&%R86T@=&\@07)G(&-O
M;G1R=6-T;W(@;7ES="!B92!2969";W at A*%0I+"!W:&5R92!4(&ES(&EN="P@
M8F]O;"!O<B!C:&%R6UTB*3L-"@D)?0T*"0D-"@D)=F]I9"!E;G-U<F5686QI
M9$YA;64H8VAA<EM=(&YA;64I#0H)"7L-"@D)"6EF*"%#;61,:6YE4&%R<V5R
M+FES5F%L:61!<F=.86UE*&YA;64I*0T*"0D)"71H<F]W(&YE=R!%>&-E<'1I
M;VXH<W1F;W)M870H8%1R:65D('1O(&1E9FEN92!A;B!I;G9A;&ED(&%R9R!N
M86UE.B B>WTB+B!!<F<@;F%M97,@;75S="!B92 B6V$M>D$M6C M.5\_72LB
M8"P@;F%M92DI.PT*"0E]#0H)"65N<W5R959A;&ED3F%M92AN86UE*3L-"@D)
M96YS=7)E5F%L:61.86UE*&%L=$YA;64I.PT*"0D-"@D):68H;F%M92 ]/2 B
M(BD-"@D)"71H<F]W(&YE=R!%>&-E<'1I;VXH8%1R:65D('1O(&1E9FEN92!A
M(&)L86YK(&%R9R!N86UE8"D[#0H)?0T*?0T*#0IC;&%S<R!#;61,:6YE4&%R
M<V5R#0I[#0H)<')I=F%T92!!<F=;72!A<F=S.PT*"7!R:79A=&4 at 07)G6V-H
M87);75T at 87)G3&]O:W5P.PT*"0T*"7!R:79A=&4 at 96YU;2!0<F5F:7 at -"@E[
M#0H)"4EN=F%L:60L($1O=6)L941A<V at L(%-I;F=L941A<V at L(%-L87-H#0H)
M?0T*"0T*"65N=6T at 4&%R<V5!<F=297-U;'0-"@E[#0H)"41O;F4L($YO=$9O
M=6YD+"!%<G)O<@T*"7T-"@D-"@ES=&%T:6, at 8F]O;"!I<U9A;&ED07)G3F%M
M92AC:&%R6UT@;F%M92D-"@E[#0H)"69O<F5A8V at H8VAA<B!C.R!N86UE*0T*
M"0E[#0H)"0EI9B at A:7-!;'!H84YU;65R:6,H8RD@)B8 at 8R A/2 G7R<@)B8@
M8R A/2 G/R<I#0H)"0D)<F5T=7)N(&9A;'-E.PT*"0E]#0H)"7)E='5R;B!T
M<G5E.PT*"7T-"@D-"@EP<FEV871E('9O:60 at 96YS=7)E5F%L:60H*0T*"7L-
M"@D)9F]R96%C:"A!<F<@87)G.R!A<F=S*0T*"0E[#0H)"0EA<F<N96YS=7)E
M5F%L:60H*3L-"@D)?0T*"7T-"@D-"@EP<FEV871E('9O:60@<&]P=6QA=&5,
M;V]K=7 H*0T*"7L-"@D)9F]R96%C:"A!<F<@87)G.R!A<F=S*0T*"0E[#0H)
M"0EA9&14;T%R9TQO;VMU<"AA<F<N;F%M92P at 87)G*3L-"@D)"0T*"0D):68H
M87)G+F%L=$YA;64@(3T@(B(I#0H)"0D)861D5&]!<F=,;V]K=7 H87)G+F%L
M=$YA;64L(&%R9RD[#0H)"7T-"@E]#0H-"@EP<FEV871E('9O:60 at 9V5N1&5F
M875L=%9A;'5E<R at I#0H)>PT*"0EF;W)E86-H*$%R9R!A<F<[(&%R9W,I#0H)
M"7L-"@D)"6%R9RYG96Y$969A=6QT5F%L=64H*3L-"@D)?0T*"7T-"@T*"7!U
M8FQI8R!V;VED(&%D9$%R9RA!<F<@87)G*0T*"7L-"@D)87)G<R!^/2!A<F<[
M#0H)?0T*"0T*"7!R:79A=&4@=F]I9"!A9&14;T%R9TQO;VMU<"AC:&%R6UT@
M;F%M92P at 07)G(&%R9T1E9BD-"@E[#0H)"6EF*&YA;64@:6X at 87)G3&]O:W5P
M*0T*"0D)=&AR;W<@;F5W($5X8V5P=&EO;BAS=&9O<FUA="A at 07)G=6UE;G0@
M;F%M92 B>WTB(&1E9FEN960@;6]R92!T:&%N(&]N8V4N8"P@;F%M92DI.PT*
M#0H)"6%R9TQO;VMU<%MN86UE72 ](&%R9T1E9CL-"@E]#0H)#0H)<')I=F%T
M92!V;VED('-P;&ET07)G*&-H87);72!F=6QL07)G+"!O=70 at 4')E9FEX('!R
M969I>"P@;W5T(&-H87);72!N86UE+"!O=70 at 8VAA<EM=('-U9F9I>"D-"@E[
M#0H)"6-H87);72!A<F=.;U!R969I>#L-"@T*"0DO+R!'970@<')E9FEX#0H)
M"6EF*&9U;&Q!<F<N;&5N9W1H(#X@,B F)B!F=6QL07)G6S N+C)=(#T]("(M
M+2(I#0H)"7L-"@D)"6%R9TYO4')E9FEX(#T at 9G5L;$%R9ULR+BXD73L-"@D)
M"7!R969I>" ](%!R969I>"Y$;W5B;&5$87-H.PT*"0E]#0H)"65L<V4@:68H
M9G5L;$%R9RYL96YG=&@@/B Q*0T*"0E[#0H)"0EA<F=.;U!R969I>" ](&9U
M;&Q!<F=;,2XN)%T[#0H)"0D-"@D)"6EF*&9U;&Q!<F=;,%T@/3T@)RTG*0T*
M"0D)"7!R969I>" ](%!R969I>"Y3:6YG;&5$87-H.PT*"0D)96QS92!I9BAF
M=6QL07)G6S!=(#T]("<O)RD-"@D)"0EP<F5F:7@@/2!0<F5F:7 at N4VQA<V@[
M#0H)"0EE;'-E#0H)"0E[#0H)"0D)<')E9FEX(#T at 4')E9FEX+DEN=F%L:60[
M#0H)"0D)87)G3F]0<F5F:7@@/2!F=6QL07)G.PT*"0D)?0T*"0E]#0H)"0T*
M"0DO+R!'970@<W5F9FEX(&%N9"!A<F<@;F%M90T*"0EA=71O('-U9F9I>$EN
M9&5X(#T@;6EN*"!T86YG;RYC;W)E+D%R<F%Y+F9I;F0H87)G3F]0<F5F:7 at L
M("<Z)RDL#0H)"0D)"0D)"71A;F=O+F-O<F4N07)R87DN9FEN9"AA<F=.;U!R
M969I>"P@)RLG*2P-"@D)"0D)"0D)=&%N9V\N8V]R92Y!<G)A>2YF:6YD*&%R
M9TYO4')E9FEX+" G+2<I("D[#0H)"6YA;64@/2!A<F=.;U!R969I>%LP+BYS
M=69F:7A);F1E>%T[#0H)"7-U9F9I>" ]('-U9F9I>$EN9&5X(#P at 87)G3F]0
M<F5F:7 at N;&5N9W1H(#\-"@D)"0D at 87)G3F]0<F5F:7A;<W5F9FEX26YD97 at N
M+B1=(#H@(B([#0H)?0T*#0H)<')I=F%T92!087)S94%R9U)E<W5L="!P87)S
M94%R9RAC:&%R6UT at 8VUD07)G+"!0<F5F:7@@<')E9FEX+"!C:&%R6UT at 8VUD
M3F%M92P at 8VAA<EM=('-U9F9I>"D-"@E[#0H)"5!A<G-E07)G4F5S=6QT(')E
M=" ](%!A<G-E07)G4F5S=6QT+D5R<F]R.PT*"0D-"@D)=F]I9"!(86YD;&5-
M86QF;W)M961!<F=U;65N="@I#0H)"7L-"@D)"5-T9&]U="YF;W)M871L;BA@
M26YV86QI9"!V86QU93H@(GM](F L(&-M9$%R9RD[#0H)"0ER970@/2!087)S
M94%R9U)E<W5L="Y%<G)O<CL-"@D)?0T*"0D-"@D):68H8VUD3F%M92!I;B!A
M<F=,;V]K=7 I#0H)"7L-"@D)"6%U=&\@87)G1&5F(#T at 87)G3&]O:W5P6V-M
M9$YA;65=.PT*"0D)875T;R!V86Q!<TEN=$)O>" @/2!C87-T*%)E9D)O>"$H
M:6YT(" @*2EA<F=$968N=F%L=64[#0H)"0EA=71O('9A;$%S0F]O;$)O>" ]
M(&-A<W0H4F5F0F]X(2AB;V]L(" I*6%R9T1E9BYV86QU93L-"@D)"6%U=&\@
M=F%L07-3=')";W@@(#T at 8V%S="A2969";W at A*&-H87);72DI87)G1&5F+G9A
M;'5E.PT*"0D)#0H)"0ER970@/2!087)S94%R9U)E<W5L="Y$;VYE.PT*"0D)
M:68H=F%L07-";V]L0F]X*0T*"0D)>PT*"0D)"7-W:71C:"AS=69F:7 at I#0H)
M"0D)>PT*"0D)"6-A<V4@(B(Z#0H)"0D)8V%S92 B*R(Z#0H)"0D)8V%S92 B
M.G1R=64B. at T*"0D)"0EV86Q!<T)O;VQ";W@@/2!T<G5E.PT*"0D)"0EB<F5A
M:SL-"@D)"0EC87-E("(M(CH-"@D)"0EC87-E("(Z9F%L<V4B. at T*"0D)"0EV
M86Q!<T)O;VQ";W@@/2!F86QS93L-"@D)"0D)8G)E86L[#0H)"0D)9&5F875L
M=#H-"@D)"0D)2&%N9&QE36%L9F]R;65D07)G=6UE;G0H*3L-"@D)"0D)8G)E
M86L[#0H)"0D)?0T*"0D)?0T*"0D)96QS92!I9BAV86Q!<U-T<D)O>"D-"@D)
M"7L-"@D)"0EI9BAS=69F:7 at N;&5N9W1H(#X@,2 F)B!S=69F:7A;,%T@/3T@
M)SHG*0T*"0D)"0EV86Q!<U-T<D)O>" ]('1R:6TH<W5F9FEX6S$N+B1=*3L-
M"@D)"0EE;'-E#0H)"0D)"4AA;F1L94UA;&9O<FUE9$%R9W5M96YT*"D[#0H)
M"0E]#0H)"0EE;'-E#0H)"0D)=&AR;W<@;F5W($5X8V5P=&EO;B at B26YT97)N
M86P at 17)R;W(Z($9A:6QE9"!T;R!P<F]C97-S(&%N($%R9RYV86QU92!T>7!E
M('1H870@:&%S;B=T(&)E96X@<V5T(&%S('5N<W5P<&]R=&5D+B(I.PT*"0E]
M#0H)"65L<V4-"@D)>PT*"0D)4W1D;W5T+F9O<FUA=&QN*&!5;FMN;W=N('-W
M:71C:#H@(GM](F L(&-M9$%R9RD[#0H)"0ER970@/2!087)S94%R9U)E<W5L
M="Y.;W1&;W5N9#L-"@D)?0T*"0D-"@D)<F5T=7)N(')E=#L-"@E]#0H-"@DO
M+U1/1$\Z(&-H96-K(&9O<B!R97-P;VYS92!F:6QE#0H-"@EP=6)L:6, at 8F]O
M;"!P87)S92AC:&%R6UU;72!A<F=S*0T*"7L-"@D)8F]O;"!E<G)O<CUF86QS
M93L-"@D)#0H)"65N<W5R959A;&ED*"D[#0H)"7!O<'5L871E3&]O:W5P*"D[
M#0H)"6=E;D1E9F%U;'1686QU97,H*3L-"@D)#0H)"69O<F5A8V at H8VAA<EM=
M(&%R9U-T<CL at 87)G<ULQ+BXD72D-"@D)>PT*"0D)8VAA<EM=('-U9F9I>#L-
M"@D)"6-H87);72!A<F=.86UE.PT*"0D)4')E9FEX('!R969I>#L-"@D)"0T*
M"0D)<W!L:71!<F<H87)G4W1R+"!P<F5F:7 at L(&%R9TYA;64L('-U9F9I>"D[
M#0H)"0EI9BAP<F5F:7@@/3T at 4')E9FEX+DEN=F%L:60I#0H)"0E[#0H)"0D)
M4W1D;W5T+F9O<FUA=&QN*&!5;F5X<&5C=&5D('9A;'5E.B B>WTB8"P at 87)G
M4W1R*3L-"@D)"0EE<G)O<B ]('1R=64[#0H)"0D)8V]N=&EN=64[#0H)"0E]
M#0H)"0DO+VUI>&EN*'1R86-E5F%L(2 at B87)G4W1R("(L(")P<F5F:7@@(BP@
M(F%R9TYA;64B+" B<W5F9FEX("(I*3L-"@D)"0T*"0D)875T;R!R97-U;'0@
M/2!P87)S94%R9RAA<F=3='(L('!R969I>"P at 87)G3F%M92P@<W5F9FEX*3L-
M"@D)"7-W:71C:"AR97-U;'0I#0H)"0E[#0H)"0EC87-E(%!A<G-E07)G4F5S
M=6QT+D1O;F4Z#0H)"0D)8V]N=&EN=64[#0H)"0D)#0H)"0EC87-E(%!A<G-E
M07)G4F5S=6QT+D5R<F]R. at T*"0D)8V%S92!087)S94%R9U)E<W5L="Y.;W1&
M;W5N9#H-"@D)"0EE<G)O<B ]('1R=64[#0H)"0D)8G)E86L[#0H)"0D)#0H)
M"0ED969A=6QT. at T*"0D)"71H<F]W(&YE=R!%>&-E<'1I;VXH#0H)"0D)"7-T
M9F]R;6%T*")5;F5X<&5C=&5D(%!A<G-E07)G4F5S=6QT.B H>WTI(BP@<F5S
M=6QT*2D[#0H)"0E]#0H)"7T-"@D)#0H)"7)E='5R;B A97)R;W([#0H)?0T*
M"0T*"2\O5$]$3SH at 36%K92!F=6YC=&EO;B!T;R!G970@=&AE(&UA>&EM=6T@
M;&5N9W1H(&]F('1H92!A<F<@;F%M97,-"@T*"7!R:79A=&4 at 8VAA<EM=('-W
M:71C:%1Y<&5S37-G(#T-"F!3=VET8V@@='EP97,Z#0H@(&)O;VP@*&1E9F%U
M;'0I. at T*(" @(%-E="!S('1O('1R=64Z("]S("]S*R O<SIT<G5E#0H@(" @
M4V5T(',@=&\@9F%L<V4Z("]S+2 O<SIF86QS90T*(" @($1E9F%U;'0@=F%L
M=64Z(&9A;'-E("AU;FQE<W,@;W1H97)W:7-E(&YO=&5D*0T*"0D)"2 @#0H@
M(&-H87);73H-"B @("!3970@<R!T;R B=&5X="(Z("]S.G1E>'0-"B @("!$
M969A=6QT('9A;'5E.B B(B H=6YL97-S(&]T:&5R=VES92!N;W1E9"D-"@D)
M"0D@( T*("!I;G0Z#0H@(" @4V5T(',@=&\@,SH at +W,Z,PT*(" @($1E9F%U
M;'0@=F%L=64Z(# @*'5N;&5S<R!O=&AE<G=I<V4@;F]T960I#0I at .PT*#0H)
M8VAA<EM=(&=E=%5S86=E*&EN="!N86UE0V]L=6UN5VED=&@],C I#0H)>PT*
M"0EC:&%R6UT@<F5T.PT*"0EC:&%R6UT@:6YD96YT(#T@(B @(CL-"@D)#0H)
M"7)E="!^/2 B4W=I=&-H97,Z("AP<F5F:7AE<R!C86X at 8F4@)R\G+" G+2<@
M;W(@)RTM)RE<;B([#0H)"69O<F5A8V at H07)G(&%R9SL at 87)G<RD-"@D)>PT*
M"0D)875T;R!V86Q!<TEN=$)O>" @/2!C87-T*%)E9D)O>"$H:6YT(" @*2EA
M<F<N9&5F875L=%9A;'5E.PT*"0D)875T;R!V86Q!<T)O;VQ";W@@/2!C87-T
M*%)E9D)O>"$H8F]O;" @*2EA<F<N9&5F875L=%9A;'5E.PT*"0D)875T;R!V
M86Q!<U-T<D)O>" @/2!C87-T*%)E9D)O>"$H8VAA<EM=*2EA<F<N9&5F875L
M=%9A;'5E.PT*#0H)"0EC:&%R6UT at 9&5F875L=%9A;#L-"@D)"6EF*'9A;$%S
M26YT0F]X*0T*"0D)"61E9F%U;'1686P@/2!S=&9O<FUA="@B>WTB+"!V86Q!
M<TEN=$)O>"@I*3L-"@D)"65L<V4@:68H=F%L07-";V]L0F]X*0T*"0D)"61E
M9F%U;'1686P@/2!V86Q!<T)O;VQ";W at H*2 _(")T<G5E(B Z("(B.PT*"0D)
M96QS92!I9BAV86Q!<U-T<D)O>"D-"@D)"0ED969A=6QT5F%L(#T@=F%L07-3
M=')";W at H*2 ]/2 B(B _("(B(#H@<W1F;W)M870H8")[?2)@+"!V86Q!<U-T
M<D)O>"@I*3L-"@D)"0T*"0D)8VAA<EM=(&1E9F%U;'1686Q3='(@/2!D969A
M=6QT5F%L(#T]("(B(#\-"@D)"0DB(B Z('-T9F]R;6%T*"(@*&1E9F%U;'0Z
M('M]*2(L(&1E9F%U;'1686PI.PT*"0D)"0T*"0D)8VAA<EM=(&%R9U-U9F9I
M>" ]('9A;$%S0F]O;$)O>" _("(B(#H@(CH\(GYG9712969";WA4>7!E3F%M
M92AA<F<N=F%L=64I?B(^(B [#0H-"@D)"6-H87);72!A<F=.86UE(#T@(B\B
M?F%R9RYN86UE?F%R9U-U9F9I>#L-"@D)"6EF*&%R9RYA;'1.86UE("$]("(B
M*0T*"0D)"6%R9TYA;64@?CT@(BP at +R)^87)G+F%L=$YA;65^87)G4W5F9FEX
M.PT*"0T*"0D)8VAA<EM=(&YA;65#;VQU;6Y7:61T:%-T<B ]('-T9F]R;6%T
M*")[?2(L(&YA;65#;VQU;6Y7:61T:"D[#0H)"0ER970@?CT@<W1F;W)M870H
M(GM]>RPM(GYN86UE0V]L=6UN5VED=&A3=')^(GU[?7M]7&XB+ T*"0D)(" @
M(" @(" @(" @(" @(&EN9&5N="P at 87)G3F%M97XB("(L(&%R9RYD97-C+"!D
M969A=6QT5F%L4W1R*3L-"@D)?0T*"0ER971U<FX@<F5T.PT*"7T-"@T*"6-H
M87);72!G971$971A:6QE9%5S86=E*"D-"@E[#0H)"6-H87);72!R970[#0H)
M"6-H87);72!I;F1E;G0@/2 B(" B.PT*"0D-"@D)<F5T('X](")3=VET8VAE
M<SH@*'!R969I>&5S(&-A;B!B92 G+R<L("<M)R!O<B G+2TG*5QN(CL-"@D)
M9F]R96%C:"A!<F<@87)G.R!A<F=S*0T*"0E[#0H)"0EC:&%R6UT at 87)G3F%M
M92 ]("(O(GYA<F<N;F%M93L-"@D)"6EF*&%R9RYA;'1.86UE("$]("(B*0T*
M"0D)"6%R9TYA;64@?CT@(BP at +R)^87)G+F%L=$YA;64[#0H)#0H)"0EA=71O
M('9A;$%S26YT0F]X(" ](&-A<W0H4F5F0F]X(2AI;G0@(" I*6%R9RYD969A
M=6QT5F%L=64[#0H)"0EA=71O('9A;$%S0F]O;$)O>" ](&-A<W0H4F5F0F]X
M(2AB;V]L(" I*6%R9RYD969A=6QT5F%L=64[#0H)"0EA=71O('9A;$%S4W1R
M0F]X(" ](&-A<W0H4F5F0F]X(2AC:&%R6UTI*6%R9RYD969A=6QT5F%L=64[
M#0H-"@D)"6-H87);72!D969A=6QT5F%L.PT*"0D):68H=F%L07-);G1";W at I
M#0H)"0D)9&5F875L=%9A;" ]('-T9F]R;6%T*")[?2(L('9A;$%S26YT0F]X
M*"DI.PT*"0D)96QS92!I9BAV86Q!<T)O;VQ";W at I#0H)"0D)9&5F875L=%9A
M;" ]('-T9F]R;6%T*")[?2(L('9A;$%S0F]O;$)O>"@I*3L-"@D)"65L<V4@
M:68H=F%L07-3=')";W at I#0H)"0D)9&5F875L=%9A;" ]('-T9F]R;6%T*& B
M>WTB8"P@=F%L07-3=')";W at H*2D[#0H)"0D-"@D)"7)E="!^/2 B7&XB.PT*
M"0D)<F5T('X]('-T9F]R;6%T*")[?2 H>WTI+"!D969A=6QT.B![?5QN(BP-
M"@D)"2 @(" @(" @(" @(" @("!A<F=.86UE+"!G9712969";WA4>7!E3F%M
M92AA<F<N=F%L=64I+"!D969A=6QT5F%L*3L-"@D)"7)E="!^/2!S=&9O<FUA
M="@B>WU<;B(L(&%R9RYD97-C*3L-"@D)?0T*"0ER970@?CT@(EQN(CL-"@D)
M<F5T('X]('-W:71C:%1Y<&5S37-G.PT*"0ER971U<FX@<F5T.PT*"7T-"GT-
!"@``
`
end




More information about the Digitalmars-d mailing list