Boost logo

Boost Users :

From: Keith MacDonald (boost_at_[hidden])
Date: 2004-01-07 07:19:00


> I was quoting the same documentation you referred to.

OK, but my quote came from the front page (index.html), so I read that
first. Perhaps that section should be rewritten.

> I'd love to. If I'm to use your code wholesale, I'll need you to
> add the standard boost copyright and license reference.

I've done that, and attach the new source. However, I hereby relinquish all
rights over baz2.cpp, so feel free to do whatever you like with it.

When I attempted to integrate the iterators with my actual code, I hit a
problem that I don't know how to resolve with iterator_facade. To
illustrate it, I've modified the example code and attach it as baz3.cpp.
Now, Node is an abstract base class, and DerivedNode is instantiated.
Compiling it results in the following error:

\CVS\boost\boost\iterator\iterator_facade.hpp(389) : error C2259:
'Node' : cannot instantiate abstract class due to following members:
'int Node::getInfo(void) const' : pure virtual function was not defined

Can your technique be used in such contexts?

Thanks,
Keith MacDonald

begin 666 baz2.cpp
M+R\@8F%Z,BYC<' Z($)I9&ER96-T:6]N86P@:71E<F%T;W(@97AA;7!L92X-
M"B\J#0I";V]S="!3;V9T=V%R92!,:6-E;G-E("T_at_5F5R<VEO;B Q+C @+2!!
M=6=U<W0@,3=T:"P@,C P,PT*#0I097)M:7-S:6]N(&ES(&AE<F5B>2!G<F%N
M=&5D+"!F<F5E(&]F(&-H87)G92P@=&\@86YY('!E<G-O;B!O<B!O<F=A;FEZ
M871I;VX-"F]B=&%I;FEN9R!A(&-O<'D@;V8@=&AE('-O9G1W87)E(&%N9"!A
M8V-O;7!A;GEI;F<@9&]C=6UE;G1A=&EO;B!C;W9E<F5D(&)Y#0IT:&ES(&QI
M8V5N<V4@*'1H92 B4V]F='=A<F4B*2!T;R!U<V4L(')E<')O9'5C92P_at_9&ES
M<&QA>2P_at_9&ES=')I8G5T92P-"F5X96-U=&4L(&%N9"!T<F%N<VUI="!T:&4@
M4V]F='=A<F4L(&%N9"!T;R!P<F5P87)E(&1E<FEV871I=F4@=V]R:W,@;V8@
M=&AE#0I3;V9T=V%R92P_at_86YD('1O('!E<FUI="!T:&ER9"UP87)T:65S('1O
M('=H;VT@=&AE(%-O9G1W87)E(&ES(&9U<FYI<VAE9"!T;PT*9&\@<V\L(&%L
M;"!S=6)J96-T('1O('1H92!F;VQL;W=I;F<Z#0H-"E1H92!C;W!Y<FEG:'0@
M;F]T:6-E<R!I;B!T:&4_at_4V]F='=A<F4_at_86YD('1H:7,@96YT:7)E('-T871E
M;65N="P@:6YC;'5D:6YG#0IT:&4_at_86)O=F4@;&EC96YS92!G<F%N="P@=&AI
M<R!R97-T<FEC=&EO;B!A;F0@=&AE(&9O;&QO=VEN9R!D:7-C;&%I;65R+ T*
M;75S="!B92!I;F-L=61E9"!I;B!A;&P_at_8V]P:65S(&]F('1H92!3;V9T=V%R
M92P@:6X@=VAO;&4@;W(@:6X@<&%R="P_at_86YD#0IA;&P_at_9&5R:79A=&EV92!W
M;W)K<R!O9B!T:&4_at_4V]F='=A<F4L('5N;&5S<R!S=6-H(&-O<&EE<R!O<B!D
M97)I=F%T:79E#0IW;W)K<R!A<F4@<V]L96QY(&EN('1H92!F;W)M(&]F(&UA
M8VAI;F4M97AE8W5T86)L92!O8FIE8W0_at_8V]D92!G96YE<F%T960_at_8GD-"F$@
M<V]U<F-E(&QA;F=U86=E('!R;V-E<W-O<BX-"@T*5$A%(%-/1E1705)%($E3
M(%!23U9)1$5$(")!4R!)4R(L(%=)5$A/550_at_5T%24D%.5%D_at_3T8@04Y9($M)
M3D0L($584%)%4U,@3U(-"DE-4$Q)140L($E.0TQ51$E.1R!"550_at_3D]4($Q)
M34E4140_at_5$\@5$A%(%=!4E)!3E1)15,@3T8_at_34520TA!3E1!0DE,2519+ T*
M1DE43D534R!&3U(@02!005)424-53$%2(%!54E!/4T4L(%1)5$Q%($%.1"!.
M3TXM24Y&4DE.1T5-14Y4+B!)3B!.3R!%5D5.5 T*4TA!3$P_at_5$A%($-/4%E2
M24=(5"!(3TQ$15)3($]2($%.64].12!$25-44DE"551)3D<@5$A%(%-/1E17
M05)%($)%($Q)04),10T*1D]2($%.62!$04U!1T53($]2($]42$52($Q)04))
M3$E462P_at_5TA%5$A%4B!)3B!#3TY44D%#5"P_at_5$]25"!/4B!/5$A%4E=)4T4L
M#0I!4DE324Y'($923TTL($]55"!/1B!/4B!)3B!#3TY.14-424].(%=)5$@@
M5$A%(%-/1E1705)%($]2(%1(12!54T4_at_3U(@3U1(15(-"D1%04Q)3D=3($E.
M(%1(12!33T945T%212X-"BHO#0HO+R!4;R!B=6EL9"!W:71H($U35D,Z(&-L
M("U%2'-C("U)7$-64UQB;V]S="!B87HR+F-P< T*#0HC:6YC;'5D92 \:6]S
M=')E86T^#0HC:6YC;'5D92 \8F]O<W0O:71E<F%T;W(O:71E<F%T;W)?861A
M<'1O<BYH<' ^#0H-"B\O(&ET97(@8V%N(&)E('5S960@=&\@9&5C;&%R92!S
M=&%N9&%R9"P_at_8FED:7)E8W1I;VYA;"!I=&5R871O<G,-"B\O(&9O<B!A;GD@
M8VQA<W,@5BP@=VAI8V@@:&%S('!R978H*2!A;F0@;F5X="@I(&UE;6)E<G,N
M#0H-"G1E;7!L871E(#QC;&%S<R!6/@T*<W1R=6-T(&ET97(-"@DZ(&)O;W-T
M.CII=&5R871O<E]A9&%P=&]R/&ET97(\5CXL(%8J+"!6+"!B;V]S=#HZ8FED
M:7)E8W1I;VYA;%]T<F%V97)S86Q?=&%G/@T*>PT*"71Y<&5D968-"@D)8F]O
M<W0Z.FET97)A=&]R7V%D87!T;W(\:71E<CQ6/BP_at_5BHL(%8L(&)O;W-T.CIB
M:61I<F5C=&EO;F%L7W1R879E<G-A;%]T86<^#0H)<W5P97([#0H-"@EI=&5R
M*"D@>WT-"@T*"65X<&QI8VET(&ET97(H5BH@;BD-"@D).B!S=7!E<BAN*0T*
M"7M]#0H-"@ET96UP;&%T92 \8VQA<W,@5C(^#0H):71E<BAI=&5R/%8R/B!C
M;VYS="8@>"P@='EP96YA;64_at_8F]O<W0Z.F5N86)L95]I9E]C;VYV97)T:6)L
M93Q6,BHL5BH^.CIT>7!E*B ](# I#0H)"3H@<W5P97(H>"YB87-E*"DI#0H)
M>WT-"@T*"69R:65N9"!C;&%S<R!B;V]S=#HZ:71E<F%T;W)?8V]R95]A8V-E
M<W,[#0H-"G!R:79A=&4Z#0H)=F]I9"!I;F-R96UE;G0H*0T*"7L_at_8F%S95]R
M969E<F5N8V4H*2 ](&)A<V4H*2T^;F5X="@I.R!]#0H-"@EV;VED(&1E8W)E
M;65N="@I#0H)>R!B87-E7W)E9F5R96YC92_at_I(#T_at_8F%S92_at_I+3YP<F5V*"D[
M('T-"GT[#0H-"B\O(&-L87-S($YO9&4@=7-E<R!I=&5R('1O(&EM<&QE;65N
M="!I=&5R871I;VX@;W9E<B!A(&1O=6)L>2!L:6YK960@;&ES="X-"F-L87-S
M($YO9&4-"GL-"G!U8FQI8SH-"@E.;V1E*&EN="!N5F%L*0T*"0DZ(&U?;E9A
M;"AN5F%L*2P@;5]P3F5X="A.54Q,*2P@;5]P4')E=BA.54Q,*0T*"7M]#0H-
M"@EV;VED(&%P<&5N9"A.;V1E*B!P3F]D92D-"@E[(&U?<$YE>'0@/2!P3F]D
M93L@<$YO9&4M/FU?<%!R978@/2!T:&ES.R!]#0H-"@E.;V1E(&-O;G-T*B!P
M<F5V*"D_at_8V]N<W0-"@E[(')E='5R;B!M7W!0<F5V.R!]#0H-"@E.;V1E*B!P
M<F5V*"D-"@E[(')E='5R;B!M7W!0<F5V.R!]#0H-"@E.;V1E(&-O;G-T*B!N
M97AT*"D_at_8V]N<W0-"@E[(')E='5R;B!M7W!.97AT.R!]#0H-"@E.;V1E*B!N
M97AT*"D-"@E[(')E='5R;B!M7W!.97AT.R!]#0H-"@EI;G0@=F%L=64H*2!C
M;VYS= T*"7L@<F5T=7)N(&U?;E9A;#L@?0T*#0HO+R!)=&5R871I;VXZ#0H)
M='EP961E9B!I=&5R/$YO9&4^(&ET97)A=&]R.PT*"71Y<&5D968@:71E<CQ.
M;V1E(&-O;G-T/B!C;VYS=%]I=&5R871O<CL-"@T*"6-O;G-T7VET97)A=&]R
M(&)E9VEN*"D_at_8V]N<W0-"@E[#0H)"7)E='5R;B!C;VYS=%]I=&5R871O<BAT
M:&ES*3L-"@E]#0H-"@EC;VYS=%]I=&5R871O<B!E;F0H*2!C;VYS= T*"7L-
M"@D)<F5T=7)N(&-O;G-T7VET97)A=&]R*$Y53$PI.PT*"7T-"@T*"6ET97)A
M=&]R(&)E9VEN*"D-"@E[#0H)"7)E='5R;B!I=&5R871O<BAT:&ES*3L-"@E]
M#0H-"@EI=&5R871O<B!E;F0H*0T*"7L-"@D)<F5T=7)N(&ET97)A=&]R*$Y5
M3$PI.PT*"7T-"@T*<')I=F%T93H-"@E.;V1E*@EM7W!.97AT.PT*"4YO9&4J
M"6U?<%!R978[#0H):6YT"0EM7VY686P[#0I].PT*#0HO+R!497-T('1H870@
M:71E<F%T:6]N('=O<FMS("AI9VYO<FEN9R!M96UO<GD@;&5A:W,I+@T*#0II
M;G0@;6%I;B_at_I#0I[#0H@(" @3F]D92 )<F]O="@Q*3L-"B @("!.;V1E*@EP
M3F]D92 ](&YE=R!.;V1E*#(I.PT*#0H@(" @<F]O="YA<'!E;F0H<$YO9&4I
M.PT*(" @('!.;V1E+3YA<'!E;F0H;F5W($YO9&4H,RDI.PT*#0H@(" @3F]D
M93HZ8V]N<W1?:71E<F%T;W(@:71%;F0@/2!R;V]T+F5N9"@I.PT*#0H)+R\@
M3W5T<'5T('-H;W5L9"!B93H@,2 R(#,-"B @("!F;W(@*$YO9&4Z.FET97)A
M=&]R(&ET(#T@<F]O="YB96=I;B_at_I.R!I=" A/2!I=$5N9#L@*RMI="D-"@D)
M<W1D.CIC;W5T(#P\("@J:70I+G9A;'5E*"D@/#P@<W1D.CIE;F1L.PT*#0H)
.<F5T=7)N(# [#0I]#0H`
`
end

begin 666 baz3.cpp
M+R\@8F%Z,RYC<' Z($)I9&ER96-T:6]N86P@:71E<F%T;W(@97AA;7!L92P@
M=VET:"!A8G-T<F%C="!B87-E(&-L87-S+@T*+R\@5&\@8G5I;&0@=VET:"!-
M4U9#.B!C;" M14AS8R M25Q#5E-<8F]O<W0_at_8F%Z,RYC<' -"@T*(VEN8VQU
M9&4@/&EO<W1R96%M/@T*(VEN8VQU9&4@/&)O;W-T+VET97)A=&]R+VET97)A
M=&]R7V%D87!T;W(N:'!P/@T*#0HO+R!I=&5R(&-A;B!B92!U<V5D('1O(&1E
M8VQA<F4@<W1A;F1A<F0L(&)I9&ER96-T:6]N86P@:71E<F%T;W)S#0HO+R!F
M;W(@86YY(&-L87-S(%8L('=H:6-H(&AA<R!P<F5V*"D_at_86YD(&YE>'0H*2!M
M96UB97)S+@T*#0IT96UP;&%T92 \8VQA<W,@5CX-"G-T<G5C="!I=&5R#0H)
M.B!B;V]S=#HZ:71E<F%T;W)?861A<'1O<CQI=&5R/%8^+"!6*BP_at_5BP@8F]O
M<W0Z.F)I9&ER96-T:6]N86Q?=')A=F5R<V%L7W1A9SX-"GL-"@ET>7!E9&5F
M#0H)"6)O;W-T.CII=&5R871O<E]A9&%P=&]R/&ET97(\5CXL(%8J+"!6+"!B
M;V]S=#HZ8FED:7)E8W1I;VYA;%]T<F%V97)S86Q?=&%G/@T*"7-U<&5R.PT*
M#0H):71E<B_at_I('M]#0H-"@EE>'!L:6-I="!I=&5R*%8J(&XI#0H)"3H@<W5P
M97(H;BD-"@E[?0T*#0H)=&5M<&QA=&4@/&-L87-S(%8R/@T*"6ET97(H:71E
M<CQ6,CX_at_8V]N<W0F('@L('1Y<&5N86UE(&)O;W-T.CIE;F%B;&5?:69?8V]N
M=F5R=&EB;&4\5C(J+%8J/CHZ='EP92H@/2 P*0T*"0DZ('-U<&5R*'@N8F%S
M92_at_I*0T*"7M]#0H-"@EF<FEE;F0_at_8VQA<W,@8F]O<W0Z.FET97)A=&]R7V-O
M<F5?86-C97-S.PT*#0IP<FEV871E._at_T*"79O:60@:6YC<F5M96YT*"D-"@E[
M(&)A<V5?<F5F97)E;F-E*"D@/2!B87-E*"DM/FYE>'0H*3L@?0T*#0H)=F]I
M9"!D96-R96UE;G0H*0T*"7L_at_8F%S95]R969E<F5N8V4H*2 ](&)A<V4H*2T^
M<')E=B_at_I.R!]#0I].PT*#0HO+R!C;&%S<R!.;V1E('5S97,@:71E<B!T;R!I
M;7!L96UE;G0@:71E<F%T:6]N(&]V97(@82!D;W5B;'D@;&EN:V5D(&QI<W0N
M#0IC;&%S<R!.;V1E#0I[#0IP=6)L:6,Z#0H)3F]D92AI;G0@;E9A;"D-"@D)
M.B!M7VY686PH;E9A;"DL(&U?<$YE>'0H3E5,3"DL(&U?<%!R978H3E5,3"D-
M"@E[?0T*#0H)=FER='5A;"!^3F]D92_at_I#0H)>WT-"@T*"79O:60_at_87!P96YD
M*$YO9&4J('!.;V1E*0T*"7L@;5]P3F5X=" ]('!.;V1E.R!P3F]D92T^;5]P
M4')E=B ]('1H:7,[('T-"@T*"4YO9&4_at_8V]N<W0J('!R978H*2!C;VYS= T*
M"7L@<F5T=7)N(&U?<%!R978[('T-"@T*"4YO9&4J('!R978H*0T*"7L@<F5T
M=7)N(&U?<%!R978[('T-"@T*"4YO9&4_at_8V]N<W0J(&YE>'0H*2!C;VYS= T*
M"7L@<F5T=7)N(&U?<$YE>'0[('T-"@T*"4YO9&4J(&YE>'0H*0T*"7L@<F5T
M=7)N(&U?<$YE>'0[('T-"@T*"6EN="!V86QU92_at_I(&-O;G-T#0H)>R!R971U
M<FX@;5]N5F%L.R!]#0H-"@EV:7)T=6%L(&EN="!G971);F9O*"D_at_8V]N<W0@
M/2 P.PT*#0HO+R!)=&5R871I;VXZ#0H)='EP961E9B!I=&5R/$YO9&4^(&ET
M97)A=&]R.PT*"71Y<&5D968@:71E<CQ.;V1E(&-O;G-T/B!C;VYS=%]I=&5R
M871O<CL-"@T*"6-O;G-T7VET97)A=&]R(&)E9VEN*"D_at_8V]N<W0-"@E[#0H)
M"7)E='5R;B!C;VYS=%]I=&5R871O<BAT:&ES*3L-"@E]#0H-"@EC;VYS=%]I
M=&5R871O<B!E;F0H*2!C;VYS= T*"7L-"@D)<F5T=7)N(&-O;G-T7VET97)A
M=&]R*$Y53$PI.PT*"7T-"@T*"6ET97)A=&]R(&)E9VEN*"D-"@E[#0H)"7)E
M='5R;B!I=&5R871O<BAT:&ES*3L-"@E]#0H-"@EI=&5R871O<B!E;F0H*0T*
M"7L-"@D)<F5T=7)N(&ET97)A=&]R*$Y53$PI.PT*"7T-"@T*<')I=F%T93H-
M"@E.;V1E*@EM7W!.97AT.PT*"4YO9&4J"6U?<%!R978[#0H):6YT"0EM7VY6
M86P[#0I].PT*#0IC;&%S<R!$97)I=F5D3F]D93H@<'5B;&EC($YO9&4-"GL-
M"G!U8FQI8SH-"@E$97)I=F5D3F]D92AI;G0@;E9A;"D-"@D).B!.;V1E*&Y6
M86PI#0H)>WT-"@T*"79I<G1U86P@:6YT(&=E=$EN9F\H*2!C;VYS= T*"7L-
M"@D)<F5T=7)N(#$R,SL-"@E]#0I].PT*#0HO+R!497-T('1H870@:71E<F%T
M:6]N('=O<FMS("AI9VYO<FEN9R!M96UO<GD@;&5A:W,I+@T*#0II;G0@;6%I
M;B_at_I#0I[#0H@(" @1&5R:79E9$YO9&4@"7)O;W0H,2D[#0H@(" @1&5R:79E
M9$YO9&4J"7!.;V1E(#T@;F5W($1E<FEV961.;V1E*#(I.PT*#0H@(" @<F]O
M="YA<'!E;F0H<$YO9&4I.PT*(" @('!.;V1E+3YA<'!E;F0H;F5W($1E<FEV
M961.;V1E*#,I*3L-"@T*(" @($YO9&4Z.F-O;G-T7VET97)A=&]R(&ET16YD
M(#T@<F]O="YE;F0H*3L-"@T*"2\O($]U='!U="!S:&]U;&0_at_8F4Z(#$@,B S
M#0H@(" @9F]R("A.;V1E.CII=&5R871O<B!I=" ](')O;W0N8F5G:6XH*3L@
M:70@(3T@:71%;F0[("LK:70I#0H)"7-T9#HZ8V]U=" \/" H*FET*2YV86QU
D92_at_I(#P\('-T9#HZ96YD;#L-"@T*"7)E='5R;B P.PT*?0T*
`
end


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net