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(" (%-43"!S97%U96YC92!F;W( 0T]-(&-O;&QE8W1I;VX :6YT97)F86-E M(" ($UA='1H97< 5VEL<V]N+"!3>6YE<VES(%-O9G1W87)E(%!T>2!,=&0N 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 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;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- 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<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(" (" (" ("AI=BD 3F5I=&AE<B!T:&4 ;F%M92!O9B!3>6YE<VES(%-O 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<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 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(" (" =VAE=&AE<B!I;B!C;VYT<F%C="P <W1R:6-T(&QI86)I;&ET>2P 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+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 M3TU35$Q?4T%&14%24D%97U-%455%3D-%7U)%5DE324].(" , T*(R!D969I 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\ 26YC;'5D92!T:&4 0T]-4U1,(')O;W0 :&5A9&5R M;VYS+F B("\O('-A9F5?<F5L96%S92P <F5L96%S95]S971?;G5L; T*(" M;65R871O<E]P;VQI8VEE<RYH(B O+R!I;G!U=%]C;&]N:6YG7W!O;&EC>0T* 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-, M:6YC;'5D92 B<W1L<V]F=%]I=&5R871O<BYH( T*(V5N9&EF("\J("%35$Q3 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(&%R92!C;VYT86EN960 =VET:&EN('1H92!C;VUS=&P ;F%M97-P86-E+B!4 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" 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*B\-" T*;F%M97-P86-E('-T;'-O9G0-"GL-" T*;F%M97-P86-E(&-O;7-T 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=V5A:V=R;W5P(&-O;7-T;%]A=71O;6%T:6]N7VQI8G)A<GD 075T;VUA=&EO M(%QB<FEE9B!4:&ES(&QI8G)A<GD <')O=FED97, 9F%C:6QI=&EE<R!F;W( 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 M='EP96YA;65?<&%R86U?:R!4/ T*8VQA<W, <V%F96%R<F%Y7W-E<75E;F-E M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" =F%L=65?='EP93L-"B ("!T>7!E9&5F('-I>F5?=" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" M(" (" (" 9&EF9F5R96YC95]T>7!E.PT*(" ('1Y<&5D968 =F%L=65? M='EP92 (" (" (" (" (" (" (" (" (" (" (" (" (" 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 (" (" (" (" (" (" (" (" (" (" (" (" M95]T>7!E(&-O;G-T(" (" (" (" (" (" (" (" (" (" (" M(" (" (" (" (" *F-O;G-T7VET97)A=&]R.PT*(" ("\O+R!4:&4 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 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(" (" (" (" (" (" (" (" (" (" (" (" (" (" (" 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%]) M=%]K('-A9F5A<G)A>5]S97%U96YC92A,4$-3049%05)205D 87)R87DI.R O 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 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%]) 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 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%]) M(" (" <VEZ92 I(&-O;G-T.PT*(" (&)O;VP (" (" (" ("!E;7!T M86-C97-S7V1A=&$H*3L (" +R\ 4VAO=6QD(%)!24D =&AI<PT*+R\ ('9O M14%24D%9(&%R<F%Y*3L-"B ("!S=&%T:6, 1%=/4D0 (" 8V%L8U]S:7IE M1D5!4E)!62 ("!M7W-A.PT*(" ($173U)$(&-O;G-T(" ("!M7V-)=&5M 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 M8V]M<W1L7W-A9F5A<G)A>5]S97%U96YC92AU;FET=&5S=%]R97!O<G1E<B J M"B (" (" <BT^<V5T7V9I;&4H7U]&24Q%7U\I.PT*(" (" ("!R+3YS M971?8V]M<&]N96YT*")S869E87)R87E?<V5Q=65N8V4B*3L-" T*(" (" M05E"3U5.1" 8F]U;F1S6S)=(#T M(" ("![(" ,3 L(" (" P(" ?0T*(" (" (" (" +" ('L (" U 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 M(" (&QO;F< (" (" (" (" J<&P /2 ('-T871I8U]C87-T/&QO;F<J M(" (" (#HZ4V M(" 8V]M<W1L.CIS869E87)R87E?<V5Q=65N8V4\;&]N9SX (" 87)R87DH M<'-A*3L-" T*(" (" ("!I9BAS=&0Z.F%C8W5M=6QA=&4H87)R87DN8F5G 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 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(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 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 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<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 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: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 M(#QS M='EP95]K('-A9F5A<G)A>5]S97%U96YC93Q4/CHZ8V]N<W1?:71E<F%T;W( 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 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;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 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 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 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+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;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, 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
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