
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@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@9&ES M<&QA>2P@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@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@4V]F='=A<F4@86YD('1H:7,@96YT:7)E('-T871E M;65N="P@:6YC;'5D:6YG#0IT:&4@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@8V]P:65S(&]F('1H92!3;V9T=V%R M92P@:6X@=VAO;&4@;W(@:6X@<&%R="P@86YD#0IA;&P@9&5R:79A=&EV92!W M;W)K<R!O9B!T:&4@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@8V]D92!G96YE<F%T960@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@5T%24D%.5%D@3T8@04Y9($M) M3D0L($584%)%4U,@3U(-"DE-4$Q)140L($E.0TQ51$E.1R!"550@3D]4($Q) M34E4140@5$\@5$A%(%=!4E)!3E1)15,@3T8@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@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@5TA%5$A%4B!)3B!#3TY44D%#5"P@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@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@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@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@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@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@I(#T@8F%S92@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@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@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@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@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@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@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@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@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@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@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@I*0T*"7M]#0H-"@EF<FEE;F0@8VQA<W,@8F]O<W0Z.FET97)A=&]R7V-O M<F5?86-C97-S.PT*#0IP<FEV871E.@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@8F%S95]R969E<F5N8V4H*2 ](&)A<V4H*2T^ M<')E=B@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@I#0H)>WT-"@T*"79O:60@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@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@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@I(&-O;G-T#0H)>R!R971U M<FX@;5]N5F%L.R!]#0H-"@EV:7)T=6%L(&EN="!G971);F9O*"D@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@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@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@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@I(#P\('-T9#HZ96YD;#L-"@T*"7)E='5R;B P.PT*?0T* ` end