www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - safearray's

reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
have you thought about doing sequences over SAFEARRAY's?
Apr 12 2004
next sibling parent "Pablo Aguilar" <paguilarg hotmail.com> writes:
maybe not complete SAFEARRAY's but single dimension ones

 have you thought about doing sequences over SAFEARRAY's?
Apr 12 2004
prev sibling parent reply "Matthew" <matthew stlsoft.org> writes:
Many times. Just not got round to it.

I'll bump it up on the list. ;)

"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c5f5m8$1813$1 digitaldaemon.com...
 have you thought about doing sequences over SAFEARRAY's?
Apr 13 2004
next sibling parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
"Matthew" <matthew stlsoft.org> wrote in message
news:c5g4k2$2ou5$1 digitaldaemon.com...
 Many times. Just not got round to it.

 I'll bump it up on the list. ;)
Glad to know... I cooked up something quick to work in the meantime... I'm finally getting into REALLY using stlsoft, and I'll be letting you know all comments I come up with.. To start, I've got a question about why you chose to do functionals (like listbox_add_inserter) as, well, functions, to use with for_each and not iterators (in the spirit of back_inserter and alike) to use with copy or transform? or can you use 'em like that anyway and I couldn't figure out how? I figure you thought about both ways, so I'm curious as to why the choice...
Apr 13 2004
next sibling parent reply "Matthew" <matthew stlsoft.org> writes:
Here's a very rough first draft. It presents all elements from N dimensions
in a single iterable (forward or backwards) sequence. It does not own the
SAFEARRAY.

"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c5hoe6$243r$1 digitaldaemon.com...
 "Matthew" <matthew stlsoft.org> wrote in message
 news:c5g4k2$2ou5$1 digitaldaemon.com...
 Many times. Just not got round to it.

 I'll bump it up on the list. ;)
Glad to know... I cooked up something quick to work in the meantime... I'm finally getting into REALLY using stlsoft, and I'll be letting you
know
 all comments I come up with..
 To start, I've got a question about why you chose to do functionals (like
 listbox_add_inserter) as, well, functions, to use with for_each and not
 iterators (in the spirit of back_inserter and alike) to use with copy or
 transform? or can you use 'em like that anyway and I couldn't figure out
 how? I figure you thought about both ways, so I'm curious as to why the
 choice...
begin 666 comstl_safearray_sequence.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 M(" (" ("!C;VUS=&Q?<V%F96%R<F%Y7W-E<75E;F-E+F *&]R:6=I;F%L M;'D 34]%;E-E<2YH+" Z.E-Y;F5S:7-#;VTI#0H * T*("H 4'5R<&]S93H M(" (%-43"!S97%U96YC92!F;W( 0T]-(&-O;&QE8W1I;VX :6YT97)F86-E M<RX-"B J#0H *B!#<F5A=&5D.B (" ,3=T:"!!<')I;" R,# T#0H *B!5 M<&1A=&5D.B (" ,3=T:"!!<')I;" R,# T#0H * T*("H 075T:&]R.B M(" ($UA='1H97< 5VEL<V]N+"!3>6YE<VES(%-O9G1W87)E(%!T>2!,=&0N M#0H * T*("H 3&EC96YS93H (" ("A,:6-E;G-E9"!U;F1E<B!T:&4 4WEN M97-I<R!3;V9T=V%R92!3=&%N9&%R9"!3;W5R8V4 3&EC96YS92D-"B J#0H M*B (" (" (" (" 0V]P>7)I9VAT("A#*2 R,# R+3(P,#,L(%-Y;F5S M:7, 4V]F='=A<F4 4'1Y($QT9"X-"B J#0H *B (" (" (" (" 06QL M(')I9VAT<R!R97-E<G9E9"X-"B J#0H *B (" (" (" (" =W=W.B M(" (" :'1T<#HO+W=W=RYS>6YE<VES+F-O;2YA=2]C;VUS=&P-"B J(" M(" (" (" (" (" (" (" ("!H='1P.B\O=W=W+F-O;7-T;"YO<F<O M#0H * T*("H (" (" (" (" (&5M86EL.B (" ('-U8FUI<W-I;VYS M0&-O;7-T;"YO<F< (&9O<B!S=6)M:7-S:6]N<PT*("H (" (" (" (" M(" (" (" (" (&%D;6EN0&-O;7-T;"YO<F< (" (" (&9O<B!O=&AE M<B!E;G%U:7)I97,-"B J#0H *B (" (" (" (" 4F5D:7-T<FEB=71I M;VX 86YD('5S92!I;B!S;W5R8V4 86YD(&)I;F%R>2!F;W)M<RP =VET:"!O M< T*("H (" (" (" (" ('=I=&AO=70 ;6]D:69I8V%T:6]N+"!A<F4 M<&5R;6ET=&5D('!R;W9I9&5D('1H870 =&AE(&9O;&QO=VEN9PT*("H (" M(" (" (" (&-O;F1I=&EO;G, 87)E(&UE=#H-"B J#0H *B (" (" M(" (" *&DI(%)E9&ES=')I8G5T:6]N<R!O9B!S;W5R8V4 8V]D92!M=7-T M(')E=&%I;B!T:&4 86)O=F4-"B J(" (" (" (" ("!C;W!Y<FEG:'0 M;F]T:6-E(&%N9"!C;VYT86-T(&EN9F]R;6%T:6]N+"!T:&ES(&QI<W0 ;V8- M"B J(" (" (" (" ("!C;VYD:71I;VYS(&%N9"!T:&4 9F]L;&]W:6YG M(&1I<V-L86EM97(N#0H * T*("H (" (" (" (" ("AI:2D 06YY(&1E M<FEV960 =F5R<VEO;G, ;V8 =&AI<R!S;V9T=V%R92 H:&]W<V]E=F5R(&UO M9&EF:65D*0T*("H (" (" (" (" (')E;6%I;B!T:&4 <V]L92!P<F]P M97)T>2!O9B!3>6YE<VES(%-O9G1W87)E+ T*("H-"B J(" (" (" (" M(" H:6EI*2!!;GD 9&5R:79E9"!V97)S:6]N<R!O9B!T:&ES('-O9G1W87)E M("AH;W=S;V5V97( ;6]D:69I960I#0H *B (" (" (" (" <F5M86EN M('-U8FIE8W0 =&\ 86QL('1H97-E(&-O;F1I=&EO;G,N#0H * T*("H (" M(" (" (" ("AI=BD 3F5I=&AE<B!T:&4 ;F%M92!O9B!3>6YE<VES(%-O M9G1W87)E(&YO<B!T:&4 ;F%M97, ;V8 86YY#0H *B (" (" (" (" M<W5B9&EV:7-I;VYS+"!E;7!L;WEE97, ;W( 86=E;G1S(&]F(%-Y;F5S:7, M4V]F='=A<F4L(&YO<B!T:&4-"B J(" (" (" (" ("!N86UE<R!O9B!A M;GD ;W1H97( 8V]N=')I8G5T;W)S('1O('1H:7, <V]F='=A<F4 ;6%Y(&)E M('5S960 =&\-"B J(" (" (" (" ("!E;F1O<G-E(&]R('!R;VUO=&4 M<')O9'5C=', 9&5R:79E9"!F<F]M('1H:7, <V]F='=A<F4 =VET:&]U= T* M("H (" (" (" (" ('-P96-I9FEC('!R:6]R('=R:71T96X <&5R;6ES M<VEO;BX-"B J#0H *B (" (" (" (" 5&AI<R!S;W5R8V4 8V]D92!I M<R!P<F]V:61E9"!B>2!3>6YE<VES(%-O9G1W87)E(")A<R!I<R( 86YD(&%N M>0T*("H (" (" (" (" ('=A<G)A;G1I97,L('=H971H97( 97AP<F5S M<V5D(&]R(&EM<&QI960L(&EN8VQU9&EN9RP 8G5T(&YO= T*("H (" (" M(" (" (&QI;6ET960 =&\L('1H92!I;7!L:65D('=A<G)A;G1I97, ;V8 M;65R8VAA;G1A8FEL:71Y(&%N9 T*("H (" (" (" (" (&9I=&YE<W, M9F]R(&$ <&%R=&EC=6QA<B!P=7)P;W-E(&%R92!D:7-C;&%I;65D+B!);B!N M;R!E=F5N= T*("H (" (" (" (" ('-H86QL('1H92!3>6YE<VES(%-O M9G1W87)E(&)E(&QI86)L92!F;W( 86YY(&1I<F5C="P :6YD:7)E8W0L#0H M*B (" (" (" (" :6YC:61E;G1A;"P <W!E8VEA;"P 97AE;7!L87)Y M+"!O<B!C;VYS97%U96YT:6%L(&1A;6%G97,-"B J(" (" (" (" (" H M:6YC;'5D:6YG+"!B=70 ;F]T(&QI;6ET960 =&\L('!R;V-U<F5M96YT(&]F M('-U8G-T:71U=&4 9V]O9',-"B J(" (" (" (" ("!O<B!S97)V:6-E M<SL ;&]S<R!O9B!U<V4L(&1A=&$L(&]R('!R;V9I=',[(&]R(&)U<VEN97-S M#0H *B (" (" (" (" :6YT97)R=7!T:6]N*2!H;W=E=F5R(&-A=7-E M9"!A;F0 ;VX 86YY('1H96]R>2!O9B!L:6%B:6QI='DL#0H *B (" (" M(" (" =VAE=&AE<B!I;B!C;VYT<F%C="P <W1R:6-T(&QI86)I;&ET>2P M;W( =&]R=" H:6YC;'5D:6YG#0H *B (" (" (" (" ;F5G;&EG96YC M92!O<B!O=&AE<G=I<V4I(&%R:7-I;F< :6X 86YY('=A>2!O=70 ;V8 =&AE M('5S92!O9 T*("H (" (" (" (" ('1H:7, <V]F='=A<F4L(&5V96X M:68 861V:7-E9"!O9B!T:&4 <&]S<VEB:6QI='D ;V8 <W5C: T*("H (" M(" (" (" (&1A;6%G92X-"B J#0H *B 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 J+PT*#0H-"B-I9FYD968 0T]-4U1,7TE.0TQ?2%]#3TU3 M5$Q?4T%&14%24D%97U-%455%3D-%#0HC9&5F:6YE($-/35-43%])3D-,7TA? M0T]-4U1,7U-!1D5!4E)!65]315%514Y#10T*#0HC:69N9&5F(%]?4U1,4T]& M5%]$3T-5345.5$%424].7U-+25!?4T5#5$E/3 T*(R!D969I;F4 7T-/35-4 M3%]615)?2%]#3TU35$Q?4T%&14%24D%97U-%455%3D-%7TU!2D]2(" (" M,0T*(R!D969I;F4 7T-/35-43%]615)?2%]#3TU35$Q?4T%&14%24D%97U-% M455%3D-%7TU)3D]2(" (" , T*(R!D969I;F4 7T-/35-43%]615)?2%]# M3TU35$Q?4T%&14%24D%97U-%455%3D-%7U)%5DE324].(" , T*(R!D969I M;F4 7T-/35-43%]615)?2%]#3TU35$Q?4T%&14%24D%97U-%455%3D-%7T5$ M250 (" (" , T*(V5N9&EF("\J("%?7U-43%-/1E1?1$]#54U%3E1!5$E/ M3E]32TE07U-%0U1)3TX *B\-" T*+RH +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+PT*("H 26YC;'5D97,-"B J+PT*#0HC:69N9&5F($-/35-4 M3%])3D-,7TA?0T]-4U1,#0HC(&EN8VQU9&4 (F-O;7-T;"YH(B (" (" M(" (" (" (" +R\ 26YC;'5D92!T:&4 0T]-4U1,(')O;W0 :&5A9&5R M#0HC96YD:68 +RH (4-/35-43%])3D-,7TA?0T]-4U1,("HO#0HC:68 , T* M(" ("-I9FYD968 0T]-4U1,7TE.0TQ?2%]#3TU35$Q?4D5&0T]53E1?1E5. M0U1)3TY3#0H (" (R!I;F-L=61E(")C;VUS=&Q?<F5F8V]U;G1?9G5N8W1I M;VYS+F B("\O('-A9F5?<F5L96%S92P <F5L96%S95]S971?;G5L; T*(" M("-E;F1I9B O*B A0T]-4U1,7TE.0TQ?2%]#3TU35$Q?4D5&0T]53E1?1E5. M0U1)3TY3("HO#0H (" (VEF;F1E9B!#3TU35$Q?24Y#3%](7T-/35-43%]% M3E5-15)!5$]27U!/3$E#2453#0H (" (R!I;F-L=61E(")C;VUS=&Q?96YU M;65R871O<E]P;VQI8VEE<RYH(B O+R!I;G!U=%]C;&]N:6YG7W!O;&EC>0T* M(" ("-E;F1I9B O*B A0T]-4U1,7TE.0TQ?2%]#3TU35$Q?14Y53452051/ M4E]03TQ)0TE%4R J+PT*(" ("-I9FYD968 0T]-4U1,7TE.0TQ?2%]#3TU3 M5$Q?24Y415)&04-%7U1204E44PT*(" (", :6YC;'5D92 B8V]M<W1L7VEN M=&5R9F%C95]T<F%I=',N:"(-"B (" C96YD:68 +RH (4-/35-43%])3D-, M7TA?0T]-4U1,7TE.5$521D%#15]44D%)5%, *B\-"B-E;F1I9B O*B P("HO M#0HC:69N9&5F(%-43%-/1E1?24Y#3%](7U-43%-/1E1?251%4D%43U(-"B, M:6YC;'5D92 B<W1L<V]F=%]I=&5R871O<BYH( T*(V5N9&EF("\J("%35$Q3 M3T947TE.0TQ?2%]35$Q33T947TE415)!5$]2("HO#0HC:6YC;'5D92 \86QG M;W)I=&AM/ T*#0HO*B 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+PT*("H 3F%M97-P86-E#0H * T*("H 5&AE($-/35-43"!C;VUP;VYE;G1S M(&%R92!C;VYT86EN960 =VET:&EN('1H92!C;VUS=&P ;F%M97-P86-E+B!4 M:&ES(&ES#0H *B!A8W1U86QL>2!A;B!A;&EA<R!F;W( <W1L<V]F=#HZ8V]M M<W1L7W!R;VIE8W0L#0H * T*("H 5&AE(&1E9FEN:71I;VX ;6%T<FEX(&ES M(&%S(&9O;&QO=W,Z#0H * T*("H 7U-43%-/1E1?3D]?3D%-15-004-%(" M(%]#3TU35$Q?3D]?3D%-15-004-%(" (&-O;7-T;"!D969I;FET:6]N#0H M*B M+2TM+2TM+2TM+2TM+2TM+2TM+2T (" +2TM+2TM+2TM+2TM+2TM+2TM M+2T (" +2TM+2TM+2TM+2TM+2TM+2T-"B J("!N;W0 9&5F:6YE9" (" M(" (" (" ;F]T(&1E9FEN960 (" (" (" (" /2!S=&QS;V9T.CIC M;VUS=&Q?<')O:F5C= T*("H (&YO="!D969I;F5D(" (" (" (" ("!D M969I;F5D(" (" (" (" (" ("!N;W0 9&5F:6YE9 T*("H (&1E9FEN M960 (" (" (" (" (" ("!N;W0 9&5F:6YE9" (" (" (" ("!C M;VUS=&P-"B J("!D969I;F5D(" (" (" (" (" (" 9&5F:6YE9" M(" (" (" (" (" ;F]T(&1E9FEN960-"B J#0H *B\-" T*(VEF;F1E M9B!?0T]-4U1,7TY/7TY!34534$%#10T*(R!I9F1E9B!?4U1,4T]&5%].3U]. M04U%4U!!0T4-"B\J(%1H97)E(&ES(&YO('-T;'-O9G0 ;F%M97-P86-E+"!S M;R!M=7-T(&1E9FEN92 Z.F-O;7-T;" J+PT*;F%M97-P86-E(&-O;7-T; T* M>PT*(R!E;'-E#0HO*B!$969I;F4 <W1L<V]F=#HZ8V]M<W1L7W!R;VIE8W0 M*B\-" T*;F%M97-P86-E('-T;'-O9G0-"GL-" T*;F%M97-P86-E(&-O;7-T M;%]P<F]J96-T#0I[#0H-"B, 96YD:68 +RH 7U-43%-/1E1?3D]?3D%-15-0 M04-%("HO#0HC96YD:68 +RH (5]#3TU35$Q?3D]?3D%-15-004-%("HO#0H- M"B\J("\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("HO#0H-"B\O+R!< M=V5A:V=R;W5P(&-O;7-T;%]A=71O;6%T:6]N7VQI8G)A<GD 075T;VUA=&EO M;B!,:6)R87)Y#0HO+R\ 7&EN9W)O=7 0T]-4U1,(&QI8G)A<FEE<PT*+R\O M(%QB<FEE9B!4:&ES(&QI8G)A<GD <')O=FED97, 9F%C:6QI=&EE<R!F;W( M;6%N:7!U;&%T:6YG($],12!!=71O;6%T:6]N('1Y<&5S#0HO+R\ 0'L-" T* 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($-L87-S M97,-"B J+PT*#0IC;&%S<R!V87)I86YT7W1Y<&5?97AC97!T:6]N#0H (" M.B!P=6)L:6, <W1D.CIE>&-E<'1I;VX-"GM].PT*#0IT96UP;&%T92 \<W-? M='EP96YA;65?<&%R86U?:R!4/ T*8VQA<W, <V%F96%R<F%Y7W-E<75E;F-E M#0I[#0IP<FEV871E. T*(" ('1Y<&5D968 4T%&14%24D%9(&-O;G-T(" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M("I,4$-3049%05)205D[#0IP=6)L:6,Z#0H (" ='EP961E9B!4(" (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" =F%L=65?='EP93L-"B ("!T>7!E9&5F('-I>F5?=" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" ("!S:7IE7W1Y<&4[#0H (" ='EP961E9B!P=')D:69F7W0 M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" 9&EF9F5R96YC95]T>7!E.PT*(" ('1Y<&5D968 =F%L=65? M='EP92 (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" ("9R969E<F5N8V4[#0H (" ='EP961E9B!V86QU95]T M>7!E(&-O;G-T(" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" )F-O;G-T7W)E9F5R96YC93L-"B ("!T>7!E9&5F('9A M;'5E7W1Y<&4 (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" J<&]I;G1E<CL-"B ("!T>7!E9&5F('9A;'5E M7W1Y<&4 8V]N<W0 (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" J8V]N<W1?<&]I;G1E<CL-"B ("!T>7!E9&5F('9A M;'5E7W1Y<&4 (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" J:71E<F%T;W([#0H (" ='EP961E9B!V86QU M95]T>7!E(&-O;G-T(" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" *F-O;G-T7VET97)A=&]R.PT*(" ("\O+R!4:&4 M;F]N+6UU=&%T:6YG("AC;VYS="D <F5V97)S92!I=&5R871O<B!T>7!E#0HC M:68 9&5F:6YE9"A?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%])5$52051/ M4E]355!03U)4*0T*(" ('1Y<&5D968 <W1L<V]F=%]N<U]Q=6%L*')E=F5R M<V5?:71E<F%T;W)?8F%S92D (" (" \(" :71E<F%T;W(-"B (" (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" +" ('9A;'5E7W1Y<&4-"B (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" +" (')E9F5R96YC90T* M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" L(" <&]I;G1E< T*(" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" (" L(" 9&EF9F5R M96YC95]T>7!E#0H (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" (#X (" (" (" (" (" (" <F5V M97)S95]I=&5R871O<CL-" T*(" ('1Y<&5D968 <W1L<V]F=%]N<U]Q=6%L M*&-O;G-T7W)E=F5R<V5?:71E<F%T;W)?8F%S92D\(" 8V]N<W1?:71E<F%T M;W(-"B (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" +" ('9A;'5E7W1Y<&4 8V]N<W0-"B (" (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" +" (&-O;G-T7W)E9F5R96YC90T*(" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" (" L(" 8V]N<W1? M<&]I;G1E< T*(" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" L(" 9&EF9F5R96YC95]T>7!E#0H (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (#X (" (" (" (" (" (" 8V]N<W1?<F5V97)S95]I=&5R M871O<CL-"B-E;F1I9B O*B!?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%]) M5$52051/4E]355!03U)4("HO#0H-"G!U8FQI8SH-"B ("!S<U]E>'!L:6-I M=%]K('-A9F5A<G)A>5]S97%U96YC92A,4$-3049%05)205D 87)R87DI.R O M+R!T:')O=R!V87)I86YT7W1Y<&5?97AC97!T:6]N#0H-"G!U8FQI8SH-"B M(" O+R\ 0F5G:6YS('1H92!I=&5R871I;VX-"B (" O+R\-"B (" O+R\ M7')E='5R;B!!;B!I=&5R871O<B!R97!R97-E;G1I;F< =&AE('-T87)T(&]F M('1H92!S97%U96YC90T*(" (&-O;G-T7VET97)A=&]R(" (" (" (&)E M9VEN*"D 8V]N<W0[#0H (" +R\O($5N9', =&AE(&ET97)A=&EO; T*(" M("\O+PT*(" ("\O+R!<<F5T=7)N($%N(&ET97)A=&]R(')E<')E<V5N=&EN M9R!T:&4 96YD(&]F('1H92!S97%U96YC90T*(" (&-O;G-T7VET97)A=&]R M(" (" (" (&5N9" I(&-O;G-T.PT*(VEF(&1E9FEN960H7U]35$Q33T94 M7T-&7T))1$E214-424].04Q?251%4D%43U)?4U504$]25"D-"B (" O+R\ M0F5G:6YS('1H92!R979E<G-E(&ET97)A=&EO; T*(" ("\O+PT*(" ("\O M+R!<<F5T=7)N($%N(&ET97)A=&]R(')E<')E<V5N=&EN9R!T:&4 <W1A<G0 M;V8 =&AE(')E=F5R<V4 <V5Q=65N8V4-"B ("!C;VYS=%]R979E<G-E7VET M97)A=&]R("!R8F5G:6XH*2!C;VYS=#L-"B (" O+R\ 16YD<R!T:&4 <F5V M97)S92!I=&5R871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R;B!!;B!I M=&5R871O<B!R97!R97-E;G1I;F< =&AE(&5N9"!O9B!T:&4 <F5V97)S92!S M97%U96YC90T*(" (&-O;G-T7W)E=F5R<V5?:71E<F%T;W( (')E;F0H*2!C M;VYS=#L-"B-E;F1I9B O*B!?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%]) M5$52051/4E]355!03U)4("HO#0H-"B (" O+R\ 0F5G:6YS('1H92!I=&5R M871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R;B!!;B!I=&5R871O<B!R M97!R97-E;G1I;F< =&AE('-T87)T(&]F('1H92!S97%U96YC90T*(" (&ET M97)A=&]R(" (" (" (" (" (&)E9VEN*"D[#0H (" +R\O($5N9', M=&AE(&ET97)A=&EO; T*(" ("\O+PT*(" ("\O+R!<<F5T=7)N($%N(&ET M97)A=&]R(')E<')E<V5N=&EN9R!T:&4 96YD(&]F('1H92!S97%U96YC90T* M(" (&ET97)A=&]R(" (" (" (" (" (&5N9" I.PT*(VEF(&1E9FEN M960H7U]35$Q33T947T-&7T))1$E214-424].04Q?251%4D%43U)?4U504$]2 M5"D-"B (" O+R\ 0F5G:6YS('1H92!R979E<G-E(&ET97)A=&EO; T*(" M("\O+PT*(" ("\O+R!<<F5T=7)N($%N(&ET97)A=&]R(')E<')E<V5N=&EN M9R!T:&4 <W1A<G0 ;V8 =&AE(')E=F5R<V4 <V5Q=65N8V4-"B ("!R979E M<G-E7VET97)A=&]R(" (" ("!R8F5G:6XH*3L-"B (" O+R\ 16YD<R!T M:&4 <F5V97)S92!I=&5R871I;VX-"B (" O+R\-"B (" O+R\ 7')E='5R M;B!!;B!I=&5R871O<B!R97!R97-E;G1I;F< =&AE(&5N9"!O9B!T:&4 <F5V M97)S92!S97%U96YC90T*(" (')E=F5R<V5?:71E<F%T;W( (" (" (')E M;F0H*3L-"B-E;F1I9B O*B!?7U-43%-/1E1?0T9?0DE$25)%0U1)3TY!3%]) M5$52051/4E]355!03U)4("HO#0H-"G!U8FQI8SH-"B ("!S:7IE7W1Y<&4 M(" (" <VEZ92 I(&-O;G-T.PT*(" (&)O;VP (" (" (" ("!E;7!T M>2 I(&-O;G-T.PT*#0IP=6)L:6,Z#0HO+R =F]I9" (" (" (" ("HJ M86-C97-S7V1A=&$H*3L (" +R\ 4VAO=6QD(%)!24D =&AI<PT*+R\ ('9O M:60 (" (" (" ("!U;F%C8V5S<U]D871A*"D[#0H-"G!R:79A=&4Z#0H M(" <W1A=&EC(&)O;VP (" ('1Y<&5?:7-?8V]M<&%T:6)L95\H3%!#4T%& M14%24D%9(&%R<F%Y*3L-"B ("!S=&%T:6, 1%=/4D0 (" 8V%L8U]S:7IE M7RA,4$-3049%05)205D 87)R87DI.PT*#0IP<FEV871E. T*(" ($Q00U-! M1D5!4E)!62 ("!M7W-A.PT*(" ($173U)$(&-O;G-T(" ("!M7V-)=&5M M<SL-"GT[#0H-"B\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#0HO+R!5;FET+71E<W1I;F<-" T*(VEF9&5F(%-43%-/1E1?54Y)5%1%4U0- M" T*;F%M97-P86-E('5N:71T97-T#0I[#0H (" <W-?8F]O;%]T('1E<W1? M8V]M<W1L7W-A9F5A<G)A>5]S97%U96YC92AU;FET=&5S=%]R97!O<G1E<B J M<BD-"B ("![#0H (" (" ('-S7V)O;VQ?=" (&)3=6-C97-S(" (#T M("!T<G5E.PT*#0H (" (" ('(M/G-E=%]P<F]J96-T*")#3TU35$PB*3L- M"B (" (" <BT^<V5T7V9I;&4H7U]&24Q%7U\I.PT*(" (" ("!R+3YS M971?8V]M<&]N96YT*")S869E87)R87E?<V5Q=65N8V4B*3L-" T*(" (" M(" O*B!#<F5A=&4 82!S869E+6%R<F%Y+B J+PT*(" (" ("!3049%05)2 M05E"3U5.1" 8F]U;F1S6S)=(#T #0H (" (" ('L-"B (" (" (" M(" ("![(" ,3 L(" (" P(" ?0T*(" (" (" (" +" ('L (" U M+" (" (# ("!]#0H (" (" ('T[#0H (" (" ($Q04T%&14%24D%9 M(" ("!P<V$ /2 (#HZ4V%F94%R<F%Y0W)E871E*%947TDT+"!S=&QS;V9T M7VYU;5]E;&5M96YT<RAB;W5N9',I+"!B;W5N9',I.PT*(" (" ("!V;VED M(" (" (" (" *G!V.PT*(" (" ("!(4D5354Q4(" (" (" :'( M(#T (" Z.E-A9F5!<G)A>4%C8V5S<T1A=&$H<'-A+" F<'8I.PT*#0H (" M(" (&QO;F< (" (" (" (" J<&P /2 ('-T871I8U]C87-T/&QO;F<J M/BAP=BD[#0H (" (" ('-I>F5?=" (" (" ("!L.PT*(" (" ("!L M;VYG(" (" (" (" =&]T86P[#0H-"B (" (" 9F]R*&P /2 P+"!T M;W1A;" ](# [(&P /"!B;W5N9'-;,%TN8T5L96UE;G1S("H 8F]U;F1S6S%= M+F-%;&5M96YT<SL *RML*0T*(" (" ("![#0H (" (" (" ("!P;%ML M72 ](&P[#0H (" (" (" ("!T;W1A;" K/2!L.PT*(" (" ("!]#0H M(" (" (#HZ4V%F94%R<F%Y56YA8V-E<W-$871A*'!S82D[#0H-"B (" M(" 8V]M<W1L.CIS869E87)R87E?<V5Q=65N8V4\;&]N9SX (" 87)R87DH M<'-A*3L-" T*(" (" ("!I9BAS=&0Z.F%C8W5M=6QA=&4H87)R87DN8F5G M:6XH*2P 87)R87DN96YD*"DL('-T871I8U]C87-T/&QO;F<^*# I*2 A/2!T M;W1A;"D-"B (" (" >PT*(" (" (" (" <BT^<F5P;W)T*")A<G)A M>2!C;VYT96YT<R H9F]R=V%R9"!I=&5R871I;VXI('1E<W0 9F%I;&5D("(L M(%]?3$E.15]?*3L-"B (" (" (" (&)3=6-C97-S(#T 9F%L<V4[#0H M(" (" ('T-" T*(" (" ("!I9BAS=&0Z.F%C8W5M=6QA=&4H87)R87DN M<F)E9VEN*"DL(&%R<F%Y+G)E;F0H*2P <W1A=&EC7V-A<W0\;&]N9SXH,"DI M("$]('1O=&%L*0T*(" (" ("![#0H (" (" (" ("!R+3YR97!O<G0H M(F%R<F%Y(&-O;G1E;G1S("AR979E<G-E(&ET97)A=&EO;BD =&5S="!F86EL M960 (BP 7U],24Y%7U\I.PT*(" (" (" (" 8E-U8V-E<W, /2!F86QS M93L-"B (" (" ?0T*#0H (" (" (#HZ4V%F94%R<F%Y1&5S=')O>2AP M<V$I.PT*#0H (" (" (')E='5R;B!B4W5C8V5S<SL-"B ("!]#0H-"B M("!U;FET=&5S=%]I;FET:6%L:7-E<B ("!U;FET=&5S=%]C;VUS=&Q?<V%F M96%R<F%Y7W-E<75E;F-E*'1E<W1?8V]M<W1L7W-A9F5A<G)A>5]S97%U96YC M92D[#0H-"GT +R\ ;F%M97-P86-E('5N:71T97-T#0H-"B-E;F1I9B O*B!3 M5$Q33T947U5.251415-4("HO#0H-"B\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#0HO+R!);7!L96UE;G1A=&EO; T*#0IT96UP;&%T92 \ M<W-?='EP96YA;65?<&%R86U?:R!4/ T*:6YL:6YE("\J('-T871I8R J+R!B M;V]L('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ='EP95]I<U]C;VUP871I8FQE M7RA,4$-3049%05)205D 87)R87DI#0I[#0H (" <F5T=7)N('-I>F5O9BAV M86QU95]T>7!E*2 ]/2!A<G)A>2T^8V)%;&5M96YT<SL-"GT-" T*=&5M<&QA M=&4 /'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN;&EN92 O*B!S=&%T:6, M*B\ 1%=/4D0 <V%F96%R<F%Y7W-E<75E;F-E/%0^.CIC86QC7W-I>F5?*$Q0 M0U-!1D5!4E)!62!A<G)A>2D-"GL-"B ("!$5T]21" (&-)=&5M<R /2 M(#$[#0H-"B ("!F;W(H55-(3U)4(&1I;2 ](# [(&1I;2 \(&%R<F%Y+3YC M1&EM<SL *RMD:6TI#0H (" >PT*(" (" ("!C271E;7, *CT 87)R87DM M/G)G<V%B;W5N9%MD:6U=+F-%;&5M96YT<SL-"B ("!]#0H-"B ("!R971U M<FX 8TET96US.PT*?0T*#0IT96UP;&%T92 \<W-?='EP96YA;65?<&%R86U? M:R!4/ T*:6YL:6YE('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ<V%F96%R<F%Y M7W-E<75E;F-E*$Q00U-!1D5!4E)!62!A<G)A>2D +R\ =&AR;W< =F%R:6%N M=%]T>7!E7V5X8V5P=&EO; T*(" (#H ;5]S82AA<G)A>2D-"B (" L(&U? M8TET96US*&-A;&-?<VEZ95\H87)R87DI*0T*>PT*(" (&EF*"%T>7!E7VES M7V-O;7!A=&EB;&5?*&%R<F%Y*2D-"B ("![#0H (" (" ('1H<F]W('9A M<FEA;G1?='EP95]E>&-E<'1I;VXH*3L-"B ("!]#0I]#0H-"G1E;7!L871E M(#QS<U]T>7!E;F%M95]P87)A;5]K(%0^#0II;FQI;F4 <W-?='EP96YA;65? M='EP95]K('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ8V]N<W1?:71E<F%T;W( M<V%F96%R<F%Y7W-E<75E;F-E/%0^.CIB96=I;B I(&-O;G-T#0I[#0H (" M<F5T=7)N('-T871I8U]C87-T/'!O:6YT97(^*&U?<V$M/G!V1&%T82D[#0I] M#0H-"G1E;7!L871E(#QS<U]T>7!E;F%M95]P87)A;5]K(%0^#0II;FQI;F4 M<W-?='EP96YA;65?='EP95]K('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ8V]N M<W1?:71E<F%T;W( <V%F96%R<F%Y7W-E<75E;F-E/%0^.CIE;F0H*2!C;VYS M= T*>PT*(" (')E='5R;B!S=&%T:6-?8V%S=#QP;VEN=&5R/BAM7W-A+3YP M=D1A=&$I("L <VEZ92 I.PT*?0T*#0HC:68 9&5F:6YE9"A?7U-43%-/1E1? M0T9?0DE$25)%0U1)3TY!3%])5$52051/4E]355!03U)4*0T*=&5M<&QA=&4 M/'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN;&EN92!S<U]T>7!E;F%M95]T M>7!E7VL <V%F96%R<F%Y7W-E<75E;F-E/%0^.CIC;VYS=%]R979E<G-E7VET M97)A=&]R('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ<F)E9VEN*"D 8V]N<W0- M"GL-"B ("!R971U<FX 8V]N<W1?<F5V97)S95]I=&5R871O<BAE;F0H*2D[ M#0I]#0H-"G1E;7!L871E(#QS<U]T>7!E;F%M95]P87)A;5]K(%0^#0II;FQI M;F4 <W-?='EP96YA;65?='EP95]K('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ M8V]N<W1?<F5V97)S95]I=&5R871O<B!S869E87)R87E?<V5Q=65N8V4\5#XZ M.G)E;F0H*2!C;VYS= T*>PT*(" (')E='5R;B!C;VYS=%]R979E<G-E7VET M97)A=&]R*&)E9VEN*"DI.PT*?0T*(V5N9&EF("\J(%]?4U1,4T]&5%]#1E]" M241)4D5#5$E/3D%,7TE415)!5$]27U-54%!/4E0 *B\-" T*=&5M<&QA=&4 M/'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN;&EN92!S<U]T>7!E;F%M95]T M>7!E7VL <V%F96%R<F%Y7W-E<75E;F-E/%0^.CII=&5R871O<B!S869E87)R M87E?<V5Q=65N8V4\5#XZ.F)E9VEN*"D-"GL-"B ("!R971U<FX <W1A=&EC M7V-A<W0\<&]I;G1E<CXH;5]S82T^<'9$871A*3L-"GT-" T*=&5M<&QA=&4 M/'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN;&EN92!S<U]T>7!E;F%M95]T M>7!E7VL <V%F96%R<F%Y7W-E<75E;F-E/%0^.CII=&5R871O<B!S869E87)R M87E?<V5Q=65N8V4\5#XZ.F5N9" I#0I[#0H (" <F5T=7)N('-T871I8U]C M87-T/'!O:6YT97(^*&U?<V$M/G!V1&%T82D *R!S:7IE*"D[#0I]#0H-"B-I M9B!D969I;F5D*%]?4U1,4T]&5%]#1E]"241)4D5#5$E/3D%,7TE415)!5$]2 M7U-54%!/4E0I#0IT96UP;&%T92 \<W-?='EP96YA;65?<&%R86U?:R!4/ T* M:6YL:6YE('-S7W1Y<&5N86UE7W1Y<&5?:R!S869E87)R87E?<V5Q=65N8V4\ M5#XZ.G)E=F5R<V5?:71E<F%T;W( <V%F96%R<F%Y7W-E<75E;F-E/%0^.CIR M8F5G:6XH*0T*>PT*(" (')E='5R;B!R979E<G-E7VET97)A=&]R*&5N9" I M*3L-"GT-" T*=&5M<&QA=&4 /'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN M;&EN92!S<U]T>7!E;F%M95]T>7!E7VL <V%F96%R<F%Y7W-E<75E;F-E/%0^ M.CIR979E<G-E7VET97)A=&]R('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ<F5N M9" I#0I[#0H (" <F5T=7)N(')E=F5R<V5?:71E<F%T;W(H8F5G:6XH*2D[ M#0I]#0HC96YD:68 +RH 7U]35$Q33T947T-&7T))1$E214-424].04Q?251% M4D%43U)?4U504$]25" J+PT*#0IT96UP;&%T92 \<W-?='EP96YA;65?<&%R M86U?:R!4/ T*:6YL:6YE('-S7W1Y<&5N86UE7W1Y<&5?:R!S869E87)R87E? M<V5Q=65N8V4\5#XZ.G-I>F5?='EP92!S869E87)R87E?<V5Q=65N8V4\5#XZ M.G-I>F4H*2!C;VYS= T*>PT*(" (')E='5R;B!M7V-)=&5M<SL-"GT-" T* M=&5M<&QA=&4 /'-S7W1Y<&5N86UE7W!A<F%M7VL 5#X-"FEN;&EN92!B;V]L M('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ96UP='DH*2!C;VYS= T*>PT*(" M(')E='5R;B P("$]('-I>F4H*3L-"GT-" T*+RH +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\ *B\-" T*+R\O($!]("\O(&5N9"!O9B!G<F]U<"!C M;VUS=&Q?875T;VUA=&EO;E]L:6)R87)Y#0H-"B\J("\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("HO#0H-"B-I9FYD968 7T-/35-43%].3U].04U% M4U!!0T4-"B, :69D968 7U-43%-/1E1?3D]?3D%-15-004-%#0I]("\O(&YA M;65S<&%C92!C;VUS=&P-"B, 96QS90T*?2 O+R!N86UE<W!A8V4 <W1L<V]F M=#HZ8V]M<W1L7W!R;VIE8W0-"GT +R\ ;F%M97-P86-E('-T;'-O9G0-"B, M96YD:68 +RH 7U-43%-/1E1?3D]?3D%-15-004-%("HO#0HC96YD:68 +RH M(5]#3TU35$Q?3D]?3D%-15-004-%("HO#0H-"B\J("\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("HO#0H-"B-E;F1I9B O*B A0T]-4U1,7TE.0TQ? M2%]#3TU35$Q?4T%&14%24D%97U-%455%3D-%("HO#0H-"B\J("\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 :+R\O+R\O+R\O+R\O+R\O+R\O+R\O("HO#0H` ` end
Apr 17 2004
parent reply "Pablo Aguilar" <paguilarg hotmail.com> writes:
Seems to be working fine...

It treats the elements in all dimensions as a single sequence, right? works
fine for me right now, I've got single dimension arrays only...

Great work, thanks...

 Here's a very rough first draft. It presents all elements from N
dimensions
 in a single iterable (forward or backwards) sequence. It does not own the
 SAFEARRAY.
Apr 19 2004
parent "Matthew" <matthew.hat stlsoft.dot.org> writes:
Pleasure.

Naturally I'll look to expand it in several ways in the future, but I think
it's a good STL-isation of safe-arrays for the moment. Glad that you agree
.... ;)

"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c617n2$19ba$1 digitaldaemon.com...
 Seems to be working fine...

 It treats the elements in all dimensions as a single sequence, right?
works
 fine for me right now, I've got single dimension arrays only...

 Great work, thanks...

 Here's a very rough first draft. It presents all elements from N
dimensions
 in a single iterable (forward or backwards) sequence. It does not own
the
 SAFEARRAY.
Apr 20 2004
prev sibling parent "Matthew" <matthew.hat stlsoft.dot.org> writes:
"Pablo Aguilar" <paguilarg hotmail.com> wrote in message
news:c5hoe6$243r$1 digitaldaemon.com...
 "Matthew" <matthew stlsoft.org> wrote in message
 news:c5g4k2$2ou5$1 digitaldaemon.com...
 Many times. Just not got round to it.

 I'll bump it up on the list. ;)
Glad to know... I cooked up something quick to work in the meantime... I'm finally getting into REALLY using stlsoft, and I'll be letting you know all comments I come up with.. To start, I've got a question about why you chose to do functionals (like listbox_add_inserter) as, well, functions, to use with for_each and not iterators (in the spirit of back_inserter and alike) to use with copy or transform? or can you use 'em like that anyway and I couldn't figure out how? I figure you thought about both ways, so I'm curious as to why the choice...
Habit and truculence, probably. I am aware that I do bias towards for_each() a lot. It would be *very* helpful if you could identify a few cases where you think it's inappropriate, and suggest an alternative (presumably based on std::copy or std::transform). That could help me a lot. Cheers Matthew
Apr 25 2004
prev sibling parent "Javier Estrada" <ljestrada hotmail.com> writes:
Maybe you'd want to check Andrei Alexandrecu's automation_vector.  It is a
very complete wrapper over SAFEARRAY with an STL interface.

Try:
http://www.moderncppdesign.com

Then go to Publications.  The article was published on CUJ in April 1999.

There's a minor bump if you compile the source code with VC7 or VC7.1
compilers, but nothing major.

Regards,

Javier Estrada

mailto:developeer.com ljestrada
Apr 27 2004