Boost logo

Boost :

From: Richard Peters (r.a.peters_at_[hidden])
Date: 2004-11-24 10:23:53


"Johan Nilsson" <johan.nilsson_at_[hidden]> wrote in message
news:cnvd54$uch$1_at_sea.gmane.org...
> "Robert Ramey" <ramey_at_[hidden]> wrote in message
> news:cnt6jr$m32$1_at_sea.gmane.org...
> > Basically, this looks OK to me as well. I would like to see it made
more
> > automatic and more inline with what other serializations uses. On one
> > level, this is merely a cosmetic issue. On the other level, its about
> > leverage of user interface patterns.

I have implemented a different type of visitor for variant: one that does
not take the current value held by a variant into account, but a given
index. The visitor then calls the visit object with a null pointer of the
type of the index-th argument of variant. This is then used by a serializer
to extract a value of that type, and assign it to the variant.

Attached are two diff files, one for variant.hpp and one for
detail/visitation_impl.hpp, which implement the different visitor and all
associated functions, which all have 'param' attached somewhere in their
name -- apply_param_visitor, internal_apply_param_visitor_impl,
param_visitation_impl_invoke_impl, etc. The serialization is also integrated
into variant. I do not know if the authors want this in this place, but it
is just a solution that works.

Also attached is an example file to demonstrate that it works.

Oh and I'd like to take the opportunity to thank both the authors of
boost.variant and boost.serialization, these libraries will make my life
much easier in my current project.

best regards,

Richard Peters

begin 666 variant.hpp.diff
M-#,L-#5D-#(-"CP@(VEN8VQU9&4@(F)O;W-T+W-E<FEA;&EZ871I;VXO86-C
M97-S+FAP<"(-"CP@(VEN8VQU9&4@(F)O;W-T+W-E<FEA;&EZ871I;VXO;G9P
M+FAP<"(-"CP@(VEN8VQU9&4@(F)O;W-T+W-E<FEA;&EZ871I;VXO<W!L:71?
M;65M8F5R+FAP<"(-"C_at_Y.2PY-C%D.#DU#0H\('1E;7!L871E(#QT>7!E;F%M
M92!6:7-I=&]R/@T*/"!C;&%S<R!I;G9O:V5?<&%R86U?=FES:71O<@T*/"![
M#0H\('!R:79A=&4Z("\O(')E<')E<V5N=&%T:6]N#0H\( T*/" @(" @5FES
M:71O<B8@=FES:71O<E\[#0H\( T*/"!P=6)L:6,Z("\O('9I<VET;W(@='EP
M961E9G,-"CP@#0H\(" @("!T>7!E9&5F('1Y<&5N86UE(%9I<VET;W(Z.G)E
M<W5L=%]T>7!E#0H\(" @(" @(" @<F5S=6QT7W1Y<&4[#0H\( T*/"!P=6)L
M:6,Z("\O('-T<G5C=&]R<PT*/" -"CP@(" @(&5X<&QI8VET(&EN=F]K95]P
M87)A;5]V:7-I=&]R*%9I<VET;W(F('9I<VET;W(I#0H\(" @(" @(" @.B!V
M:7-I=&]R7RAV:7-I=&]R*0T*/" @(" @>PT*/" @(" @?0T*/" -"CP@(VEF
M("%D969I;F5D*$)/3U-47TY/7U9/241?4D5455).4RD-"CP@#0H\('!U8FQI
M8SH@+R\@:6YT97)N86P@=FES:71O<B!I;G1E<F9A8V5S#0H\( T*/" @(" @
M=&5M<&QA=&4@/'1Y<&5N86UE(%0^#0H\(" @("!R97-U;'1?='EP92!I;G1E
M<FYA;%]V:7-I="A4*BP@:6YT*0T*/" @(" @>PT*/" @(" @(" @(')E='5R
M;B!V:7-I=&]R7RAS=&%T:6-?8V%S=#Q4*CXH,"DI.PT*/" @(" @?0T*/" -
M"CP@(V5L<V4@+R\@9&5F:6YE9"A"3T]35%].3U]63TE$7U)%5%523E,I#0H\
M( T*/"!P<FEV871E.B O+R!H96QP97)S+"!F;W(@:6YT97)N86P@=FES:71O
M<B!I;G1E<F9A8V5S("AB96QO=RD-"CP@#0H\(" @("!T96UP;&%T92 \='EP
M96YA;64_at_5#X-"CP@(" @(" @("!"3T]35%]605))04Y47T%56%]'14Y%4DE#
M7U)%4U5,5%]465!%*')E<W5L=%]T>7!E*0T*/" @(" @=FES:71?:6UP;"A4
M*BP@;7!L.CIF86QS95\I#0H\(" @("![#0H\(" @(" @(" @<F5T=7)N('9I
M<VET;W)?*'-T871I8U]C87-T/%0J/B_at_P*2D[#0H\(" @("!]#0H\( T*/" @
M(" @=&5M<&QA=&4@/'1Y<&5N86UE(%0^#0H\(" @(" @(" @0D]/4U1?5D%2
M24%.5%]!55A?4D5455).7U9/241?5%E010T*/" @(" @=FES:71?:6UP;"A4
M*BP@;7!L.CIT<G5E7RD-"CP@(" @('L-"CP@(" @(" @("!V:7-I=&]R7RAS
M=&%T:6-?8V%S=#Q4*CXH,"DI.PT*/" @(" @(" @($)/3U-47U9!4DE!3E1?
M05587U)%5%523E]63TE$.PT*/" @(" @?0T*/" -"CP@<'5B;&EC.B O+R!I
M;G1E<FYA;"!V:7-I=&]R(&EN=&5R9F%C97,-"CP@#0H\(" @("!T96UP;&%T
M92 \='EP96YA;64_at_5#X-"CP@(" @(" @("!"3T]35%]605))04Y47T%56%]'
M14Y%4DE#7U)%4U5,5%]465!%*')E<W5L=%]T>7!E*0T*/" @(" @:6YT97)N
M86Q?=FES:70H5"HL(&EN="D-"CP@(" @('L-"CP@(" @(" @("!T>7!E9&5F
M('1Y<&5N86UE(&ES7W-A;64\<F5S=6QT7W1Y<&4L('9O:60^.CIT>7!E#0H\
M(" @(" @(" @(" @(&AA<U]V;VED7W)E<W5L=%]T>7!E.PT*/" -"CP@(" @
M(" @("!R971U<FX@=FES:71?:6UP;"AS=&%T:6-?8V%S=#Q4*CXH,"DL(&AA
M<U]V;VED7W)E<W5L=%]T>7!E*"DI.PT*/" @(" @?0T*/" -"CP@(V5N9&EF
M("\O($)/3U-47TY/7U9/241?4D5455).4RD@=V]R:V%R;W5N9 T*/"!].PT*
M/" -"C$X,#@L,3_at_S,F0Q-S0Q#0H\(" @("!S=&%T:6,-"CP@(" @(" @("!"
M3T]35%]605))04Y47T%56%]'14Y%4DE#7U)%4U5,5%]465!%* T*/" @(" @
M(" @(" @(" @('1Y<&5N86UE(%9I<VET;W(Z.G)E<W5L=%]T>7!E#0H\(" @
M(" @(" @(" @("D-"CP@(" @(&EN=&5R;F%L7V%P<&QY7W!A<F%M7W9I<VET
M;W)?:6UP;"@-"CP@(" @(" @(" @(&EN="!L;V=I8V%L7W=H:6-H#0H\(" @
M(" @(" @+"!6:7-I=&]R)B!V:7-I=&]R#0H\(" @(" @(" @*0T*/" @(" @
M>PT*/" @(" @(" @('1Y<&5D968@;7!L.CII;G1?/# ^(&9I<G-T7W=H:6-H
M.PT*/" @(" @(" @('1Y<&5D968@='EP96YA;64@;7!L.CIB96=I;CQI;G1E
M<FYA;%]T>7!E<SXZ.G1Y<&4_at_9FER<W1?:70[#0H\(" @(" @(" @='EP961E
M9B!T>7!E;F%M92!M<&PZ.F5N9#QI;G1E<FYA;%]T>7!E<SXZ.G1Y<&4@;&%S
M=%]I=#L-"CP@#0H\(" @(" @(" @='EP961E9B!D971A:6PZ.G9A<FEA;G0Z
M.G9I<VET871I;VY?:6UP;%]S=&5P/ T*/" @(" @(" @(" @(" @(&9I<G-T
M7VET+"!L87-T7VET#0H\(" @(" @(" @(" @(#X_at_9FER<W1?<W1E<#L-"CP@
M#0H\(" @(" @(" @<F5T=7)N(&1E=&%I;#HZ=F%R:6%N=#HZ<&%R86U?=FES
M:71A=&EO;E]I;7!L* T*/" @(" @(" @(" @(" @(&QO9VEC86Q?=VAI8V_at_-
M"CP@(" @(" @(" @(" @+"!V:7-I=&]R+"!M<&PZ.F9A;'-E7R_at_I#0H\(" @
M(" @(" @(" @("P@<W1A=&EC7V-A<W0\9FER<W1?=VAI8V_at_J/B_at_P*2P@<W1A
M=&EC7V-A<W0\9FER<W1?<W1E<"H^*# I#0H\(" @(" @(" @(" @("D[#0H\
M(" @("!]#0H\( T*/" @(" @=&5M<&QA=&4@/'1Y<&5N86UE(%9I<VET;W(^
M#0HQ.#4T+#$X-S5D,3<V,@T*/" @(" @=&5M<&QA=&4@/'1Y<&5N86UE(%9I
M<VET;W(^#0H\(" @(" @(" @0D]/4U1?5D%224%.5%]!55A?1T5.15))0U]2
M15-53%1?5%E012_at_-"CP@(" @(" @(" @(" @("!T>7!E;F%M92!6:7-I=&]R
M.CIR97-U;'1?='EP90T*/" @(" @(" @(" @(" I#0H\(" @("!I;G1E<FYA
M;%]A<'!L>5]P87)A;5]V:7-I=&]R*%9I<VET;W(F('9I<VET;W(L(&EN="!P
M87)A;2D-"CP@(" @('L-"CP@(" @(" @("!R971U<FX@:6YT97)N86Q?87!P
M;'E?<&%R86U?=FES:71O<E]I;7!L* T*/" @(" @(" @(" @(" @('!A<F%M
M+"!V:7-I=&]R#0H\(" @(" @(" @(" @("D[#0H\(" @("!]#0H\( T*/" @
M(" @=&5M<&QA=&4@/'1Y<&5N86UE(%9I<VET;W(^#0H\(" @(" @(" @0D]/
M4U1?5D%224%.5%]!55A?1T5.15))0U]215-53%1?5%E012_at_-"CP@(" @(" @
M(" @(" @("!T>7!E;F%M92!6:7-I=&]R.CIR97-U;'1?='EP90T*/" @(" @
M(" @(" @(" I#0H\(" @("!I;G1E<FYA;%]A<'!L>5]P87)A;5]V:7-I=&]R
M*%9I<VET;W(F('9I<VET;W(L(&EN="!P87)A;2D_at_8V]N<W0-"CP@(" @('L-
M"CP@(" @(" @("!R971U<FX@:6YT97)N86Q?87!P;'E?<&%R86U?=FES:71O
M<E]I;7!L* T*/" @(" @(" @(" @(" @('!A<F%M+"!V:7-I=&]R#0H\(" @
M(" @(" @(" @("D[#0H\(" @("!]#0H\( T*,3_at_Y."PQ.3<P9#$W.#0-"CP@
M(" @('1E;7!L871E(#QT>7!E;F%M92!6:7-I=&]R/@T*/" @(" @(" @($)/
M3U-47U9!4DE!3E1?05587T=%3D5224-?4D5354Q47U194$4H#0H\(" @(" @
M(" @(" @(" @='EP96YA;64_at_5FES:71O<CHZ<F5S=6QT7W1Y<&4-"CP@(" @
M(" @(" @(" @*0T*/" @(" @87!P;'E?<&%R86U?=FES:71O<BA6:7-I=&]R
M)B!V:7-I=&]R+"!I;G0@<&%R86TI#0H\(" @("![#0H\(" @(" @(" @9&5T
M86EL.CIV87)I86YT.CII;G9O:V5?<&%R86U?=FES:71O<CQ6:7-I=&]R/B!I
M;G9O:V5R*'9I<VET;W(I.PT*/" @(" @(" @(')E='5R;B!T:&ES+3YI;G1E
M<FYA;%]A<'!L>5]P87)A;5]V:7-I=&]R*&EN=F]K97(L('!A<F%M*3L-"CP@
M(" @('T-"CP@#0H\(" @("!T96UP;&%T92 \='EP96YA;64_at_5FES:71O<CX-
M"CP@(" @(" @("!"3T]35%]605))04Y47T%56%]'14Y%4DE#7U)%4U5,5%]4
M65!%* T*/" @(" @(" @(" @(" @('1Y<&5N86UE(%9I<VET;W(Z.G)E<W5L
M=%]T>7!E#0H\(" @(" @(" @(" @("D-"CP@(" @(&%P<&QY7W!A<F%M7W9I
M<VET;W(H5FES:71O<B8@=FES:71O<BP@:6YT('!A<F%M*2!C;VYS= T*/" @
M(" @>PT*/" @(" @(" @(&1E=&%I;#HZ=F%R:6%N=#HZ:6YV;VME7W!A<F%M
M7W9I<VET;W(\5FES:71O<CX@:6YV;VME<BAV:7-I=&]R*3L-"CP@(" @(" @
M("!R971U<FX@=&AI<RT^:6YT97)N86Q?87!P;'E?<&%R86U?=FES:71O<BAI
M;G9O:V5R+"!P87)A;2D[#0H\(" @("!]#0H\( T*/"!P<FEV871E._at_T*/" @
M(" @=&5M<&QA=&4\8VQA<W,@07)C:&EV93X-"CP@(" @(&-L87-S('-T;W)E
M7V%R8VAI=F4Z('!U8FQI8R!S=&%T:6-?=FES:71O<CQV;VED/@T*/" @(" @
M>PT*/" @(" @(" @($%R8VAI=F4F(&%R8VAI=F4[#0H\(" @("!P=6)L:6,Z
M#0H\(" @(" @(" @<W1O<F5?87)C:&EV92A!<F-H:79E)B!A<BD-"CP@(" @
M(" @(" @(" @.B!A<F-H:79E*&%R*2![?0T*/" -"CP@(" @(" @("!T96UP
M;&%T93QC;&%S<R!4/@T*/" @(" @(" @('9O:60@;W!E<F%T;W(H*2A4('9A
M;'5E*2!C;VYS= T*/" @(" @(" @('L-"CP@(" @(" @(" @(" @87)C:&EV
M92 F($)/3U-47U-%4DE!3$E:051)3TY?3E90*'9A;'5E*3L-"CP@(" @(" @
M("!]#0H\(" @("!].PT*/" -"CP@(" @('1E;7!L871E/&-L87-S($%R8VAI
M=F4^#0H\(" @("!C;&%S<R!L;V%D7V%R8VAI=F4Z('!U8FQI8R!S=&%T:6-?
M=FES:71O<CQV;VED/@T*/" @(" @>PT*/" @(" @(" @($%R8VAI=F4F(&%R
M8VAI=F4[#0H\(" @(" @(" @=F%R:6%N="8_at_9&5S=&EN871I;VX[#0H\(" @
M("!P=6)L:6,Z#0H\(" @(" @(" @;&]A9%]A<F-H:79E*$%R8VAI=F4F(&%R
M+"!V87)I86YT)B!V87(I#0H\(" @(" @(" @(" @(#H_at_87)C:&EV92AA<BDL
M(&1E<W1I;F%T:6]N*'9A<BD@>WT-"CP@#0H\(" @(" @(" @=&5M<&QA=&4\
M8VQA<W,@5#X-"CP@(" @(" @("!V;VED(&]P97)A=&]R*"DH5"HI(&-O;G-T
M#0H\(" @(" @(" @>PT*/" @(" @(" @(" @("!4('9A;'5E.PT*/" @(" @
M(" @(" @("!A<F-H:79E("8_at_0D]/4U1?4T5224%,25I!5$E/3E].5E H=F%L
M=64I.PT*/" @(" @(" @(" @("!D97-T:6YA=&EO;B ]('9A;'5E.PT*/" @
M(" @(" @('T-"CP@(" @('T[#0H\( T*/" @(" @9G)I96YD(&-L87-S(&)O
M;W-T.CIS97)I86QI>F%T:6]N.CIA8V-E<W,[#0H\( T*/" @(" @=&5M<&QA
M=&4\8VQA<W,@07)C:&EV93X-"CP@(" @('9O:60@<V%V92A!<F-H:79E("8@
M87(L(&-O;G-T('5N<VEG;F5D(&EN="!V97)S:6]N*2!C;VYS= T*/" @(" @
M>PT*/" @(" @(" @(&EN="!W:&EC:%]A<F=U;65N="AW:&EC:"@I*3L-"CP@
M(" @(" @("!A<B F(&)O;W-T.CIS97)I86QI>F%T:6]N.CIM86ME7VYV<"@B
M=VAI8V_at_B+"!W:&EC:%]A<F=U;65N="D[#0H\(" @(" @(" @87!P;'E?=FES
M:71O<BAS=&]R95]A<F-H:79E/$%R8VAI=F4^*&%R*2D[#0H\(" @("!]#0H\
M( T*/" @(" @=&5M<&QA=&4\8VQA<W,@07)C:&EV93X-"CP@(" @('9O:60@
M;&]A9"A!<F-H:79E("8_at_87(L(&-O;G-T('5N<VEG;F5D(&EN="!V97)S:6]N
M*0T*/" @(" @>PT*/" @(" @(" @(&EN="!W:&EC:%]A<F=U;65N=#L-"CP@
M(" @(" @("!A<B F(&)O;W-T.CIS97)I86QI>F%T:6]N.CIM86ME7VYV<"@B
M=VAI8V_at_B+"!W:&EC:%]A<F=U;65N="D[#0H\(" @(" @(" @87!P;'E?<&%R
M86U?=FES:71O<BAL;V%D7V%R8VAI=F4\07)C:&EV93XH87(L("IT:&ES*2P@
M=VAI8VA?87)G=6UE;G0I.PT*/" @(" @?0T*/" -"CP@(" @($)/3U-47U-%
<4DE!3$E:051)3TY?4U!,251?345-0D52*"D-"@``
`
end

begin 666 variant_serialization.cpp
M(VEN8VQU9&4@/&)O;W-T+W9A<FEA;G0N:'!P/@T*(VEN8VQU9&4@/&)O;W-T
M+W-E<FEA;&EZ871I;VXO<W!L:71?;65M8F5R+FAP<#X-"B-I;F-L=61E(#QB
M;V]S="]A<F-H:79E+WAM;%]O87)C:&EV92YH<' ^#0HC:6YC;'5D92 \8F]O
M<W0O87)C:&EV92]X;6Q?:6%R8VAI=F4N:'!P/@T*(VEN8VQU9&4@/&EO<W1R
M96%M/@T*(VEN8VQU9&4@/'-S=')E86T^#0H-"F-L87-S('!R:6YT7W9I<VET
M;W(Z('!U8FQI8R!B;V]S=#HZ<W1A=&EC7W9I<VET;W(\=F]I9#X-"GL-"G!U
M8FQI8SH-"B @("!T96UP;&%T93QC;&%S<R!4/@T*(" @(" @("!V;VED(&]P
M97)A=&]R*"DH5"!V86QU92D_at_8V]N<W0-"B @("![#0H@(" @(" @('-T9#HZ
M8V]U=" \/"!V86QU92 \/"!S=&0Z.F5N9&P[#0H@(" @?0T*?3L-"@T*:6YT
M(&UA:6XH*2![#0H@(" @<W1D.CIS=')I;F<@=F%L=64@/2 B8FQA:"([#0H@
M(" @+R]I;G0@=F%L=64@/2 U.PT*(" @(&)O;W-T.CIV87)I86YT/&EN="P@
M<W1D.CIS=')I;F<^('@@/2!V86QU93L-"@T*(" @('-T9#HZ;W-T<FEN9W-T
M<F5A;2!O<W,[#0H@(" @8F]O<W0Z.F%R8VAI=F4Z.GAM;%]O87)C:&EV92!O
M82AO<W,I.PT*(" @(&]A(#P\($)/3U-47U-%4DE!3$E:051)3TY?3E90*'@I
M.PT*#0H@(" @<W1D.CIC;W5T(#P\(&]S<RYS='(H*2 \/"!S=&0Z.F5N9&P[
M#0H-"B @("!S=&0Z.FES=')I;F=S=')E86T@:7-S*&]S<RYS='(H*2D[#0H@
M(" @8F]O<W0Z.F%R8VAI=F4Z.GAM;%]I87)C:&EV92!I82AI<W,I.PT*#0H@
M(" @8F]O<W0Z.G9A<FEA;G0\:6YT+"!S=&0Z.G-T<FEN9SX@;F5W>#L-"B @
M("!I82 ^/B!"3T]35%]315))04Q)6D%424].7TY64"AN97=X*3L-"@T*(" @
M(&)O;W-T.CIA<'!L>5]V:7-I=&]R*'!R:6YT7W9I<VET;W(H*2P@;F5W>"D[
6#0H-"B @("!R971U<FX@,#L-"GT-"@``
`
end

begin 666 visitation_impl.hpp.diff
M,34Q+#$V,F0Q-3 -"CP@=&5M<&QA=&4@/'1Y<&5N86UE(%9I<VET;W(L('1Y
M<&5N86UE(%0^#0H\(&EN;&EN90T*/" @(" @0D]/4U1?5D%224%.5%]!55A?
M1T5.15))0U]215-53%1?5%E012AT>7!E;F%M92!6:7-I=&]R.CIR97-U;'1?
M='EP92D-"CP@<&%R86U?=FES:71A=&EO;E]I;7!L7VEN=F]K95]I;7!L* T*
M/" @(" @("!6:7-I=&]R)B!V:7-I=&]R+"!4*@T*/" @(" @*0T*/"![#0H\
M(" @("!R971U<FX@=FES:71O<BYI;G1E<FYA;%]V:7-I="@-"CP@(" @(" @
M(" @('-T871I8U]C87-T/%0J/B_at_P*2P@,4P-"CP@(" @(" @(" I.PT*/"!]
M#0H\( T*,3DU+#(Q-V0Q.#(-"CP@=&5M<&QA=&4@/'1Y<&5N86UE(%9I<VET
M;W(L('1Y<&5N86UE(%0^#0H\(&EN;&EN90T*/" @(" @0D]/4U1?5D%224%.
M5%]!55A?1T5.15))0U]215-53%1?5%E012AT>7!E;F%M92!6:7-I=&]R.CIR
M97-U;'1?='EP92D-"CP@<&%R86U?=FES:71A=&EO;E]I;7!L7VEN=F]K92_at_-
M"CP@(" @(" @5FES:71O<B8@=FES:71O<BP_at_5"H@= T*/" @(" @*0T*/"![
M#0H\(" @("!R971U<FX@<&%R86U?=FES:71A=&EO;E]I;7!L7VEN=F]K95]I
M;7!L* T*/" @(" @(" @(" @=FES:71O<BP@= T*/" @(" @(" @("D[#0H\
M('T-"CP@#0H\('1E;7!L871E(#QT>7!E;F%M92!6:7-I=&]R/@T*/"!I;FQI
M;F4-"CP@(" @($)/3U-47U9!4DE!3E1?05587T=%3D5224-?4D5354Q47U19
M4$4H='EP96YA;64_at_5FES:71O<CHZ<F5S=6QT7W1Y<&4I#0H\('!A<F%M7W9I
M<VET871I;VY?:6UP;%]I;G9O:V4H5FES:71O<B8L(&%P<&QY7W9I<VET;W)?
M=6YR;VQL960J*0T*/"![#0H\(" @(" O+R!S:&]U;&0@;F5V97(@8F4@:&5R
M92!A="!R=6YT:6UE._at_T*/" @(" @0D]/4U1?05-315)4*&9A;'-E*3L-"CP@
M(" @('1Y<&5D968@='EP96YA;64_at_5FES:71O<CHZ<F5S=6QT7W1Y<&4@<F5S
M=6QT7W1Y<&4[#0H\(" @("!R971U<FX_at_.CIB;V]S=#HZ9&5T86EL.CIV87)I
M86YT.CIF;W)C961?<F5T=7)N/"!R97-U;'1?='EP92 ^*"D[#0H\('T-"CP@
M#0HS,30L-# R9#(W. T*/" @(" @(" @("P@<W1A=&EC7V-A<W0\;F5X=%]W
M:&EC:"H^*# I+"!S=&%T:6-?8V%S=#QN97AT7W-T97 J/B_at_P*0T*/" @(" @
M(" @("D[#0H\('T-"CP@#0H\('1E;7!L871E(#P-"CP@(" @(" @='EP96YA
M;64_at_5RP@='EP96YA;64_at_4PT*/" @(" @+"!T>7!E;F%M92!6:7-I=&]R#0H\
M(" @(" ^#0H\(&EN;&EN90T*/" @(" @0D]/4U1?5D%224%.5%]!55A?1T5.
M15))0U]215-53%1?5%E012AT>7!E;F%M92!6:7-I=&]R.CIR97-U;'1?='EP
M92D-"CP@<&%R86U?=FES:71A=&EO;E]I;7!L* T*/" @(" @("!I;G0L(%9I
M<VET;W(F#0H\(" @(" L(&UP;#HZ=')U95\@+R\@:7-?87!P;'E?=FES:71O
M<E]U;G)O;&QE9 T*/" @(" @+"!7*B ](# L(%,J(#T@, T*/" @(" @*0T*
M/"![#0H\(" @(" O+R!S:&]U;&0@;F5V97(@8F4@:&5R92!A="!R=6YT:6UE
M._at_T*/" @(" @0D]/4U1?05-315)4*&9A;'-E*3L-"CP@(" @('1Y<&5D968@
M='EP96YA;64_at_5FES:71O<CHZ<F5S=6QT7W1Y<&4@<F5S=6QT7W1Y<&4[#0H\
M(" @("!R971U<FX_at_.CIB;V]S=#HZ9&5T86EL.CIV87)I86YT.CIF;W)C961?
M<F5T=7)N/"!R97-U;'1?='EP92 ^*"D[#0H\('T-"CP@#0H\('1E;7!L871E
M(#P-"CP@(" @(" @='EP96YA;64_at_5VAI8V@L('1Y<&5N86UE('-T97 P#0H\
M(" @(" L('1Y<&5N86UE(%9I<VET;W(-"CP@(" @(#X-"CP@:6YL:6YE#0H\
M(" @("!"3T]35%]605))04Y47T%56%]'14Y%4DE#7U)%4U5,5%]465!%*'1Y
M<&5N86UE(%9I<VET;W(Z.G)E<W5L=%]T>7!E*0T*/"!P87)A;5]V:7-I=&%T
M:6]N7VEM<&PH#0H\(" @(" @(&-O;G-T(&EN="!L;V=I8V%L7W=H:6-H#0H\
M(" @(" L(%9I<VET;W(F('9I<VET;W(-"CP@(" @("P@;7!L.CIF86QS95\@
M+R\@:7-?87!P;'E?=FES:71O<E]U;G)O;&QE9 T*/" @(" @+"!7:&EC:"H@
M/2 P+"!S=&5P,"H@/2 P#0H\(" @(" I#0H\('L-"CP@(" @("\O(%1Y<&5D
M968_at_87!P;'E?=FES:71O<E]U;G)O;&QE9"!S=&5P<R!A;F0_at_87-S;V-I871E
M9"!T>7!E<RXN+@T*/" C(" @9&5F:6YE($)/3U-47U9!4DE!3E1?05587T%0
M4$Q97U9)4TE43U)?4U1%4%]465!%1$5&*'HL($XL(%\I(%P-"CP@(" @('1Y
M<&5D968@='EP96YA;64_at_0D]/4U1?4%!?0T%4*'-T97 L3BDZ.G1Y<&4_at_0D]/
M4U1?4%!?0T%4*%0L3BD[(%P-"CP@(" @('1Y<&5D968@='EP96YA;64_at_0D]/
M4U1?4%!?0T%4*'-T97 L3BDZ.FYE>'0_at_7 T*/" @(" @(" @($)/3U-47U!0
M7T-!5"AS=&5P+"!"3T]35%]04%])3D,H3BDI.R!<#0H\(" @(" O*BHO#0H\
M( T*/" @(" @0D]/4U1?4%!?4D5014%4* T*/" @(" @(" @(" @0D]/4U1?
M5D%224%.5%]625-)5$%424].7U5.4D],3$E.1U],24U)5 T*/" @(" @(" @
M("P_at_0D]/4U1?5D%224%.5%]!55A?05!03%E?5DE3251/4E]35$507U194$5$
M148-"CP@(" @(" @(" L(%\-"CP@(" @(" @(" I#0H\( T*/" C(" @=6YD
M968_at_0D]/4U1?5D%224%.5%]!55A?05!03%E?5DE3251/4E]35$507U194$5$
M148-"CP@#0H\(" @(" O+R N+BYS=VET8V@@;VX@=&AE('1A<F=E="!W:&EC
M:"UI;F1E>"!V86QU92XN+@T*/" @(" @<W=I=&-H("AL;V=I8V%L7W=H:6-H
M*0T*/" @(" @>PT*/" -"CP@(" @("\O("XN+F%P<&QY:6YG('1H92!A<'!R
M;W!R:6%T92!C87-E._at_T*/" C(" @9&5F:6YE($)/3U-47U9!4DE!3E1?0558
M7T%04$Q97U9)4TE43U)?4U1%4%]#05-%*'HL($XL(%\I(%P-"CP@(" @(&-A
M<V4@*%=H:6-H.CIV86QU92 K("A.*2DZ(%P-"CP@(" @(" @("!R971U<FX@
M<&%R86U?=FES:71A=&EO;E]I;7!L7VEN=F]K92@@7 T*/" @(" @(" @(" @
M(" @('9I<VET;W)<#0H\(" @(" @(" @(" @("P@<W1A=&EC7V-A<W0\0D]/
M4U1?4%!?0T%4*%0L3BDJ/B_at_P*2!<#0H\(" @(" @(" @(" @("D[(%P-"CP@
M(" @("\J*B\-"CP@#0H\(" @("!"3T]35%]04%]215!%050H#0H\(" @(" @
M(" @("!"3T]35%]605))04Y47U9)4TE4051)3TY?54Y23TQ,24Y'7TQ)34E4
M#0H\(" @(" @(" @+"!"3T]35%]605))04Y47T%56%]!4%!,65]625-)5$]2
M7U-415!?0T%310T*/" @(" @(" @("P_at_7PT*/" @(" @(" @("D-"CP@#0H\
M(",@("!U;F1E9B!"3T]35%]605))04Y47T%56%]!4%!,65]625-)5$]27U-4
M15!?0T%310T*/" -"CP@(" @('T-"CP@#0H\(" @(" O+R!)9B!N;W0@:&%N
M9&QE9"!I;B!T:&ES(&ET97)A=&EO;BP_at_8V]N=&EN=64@=6YR;VQL:6YG._at_T*
M/" @(" @='EP961E9B!M<&PZ.FEN=%\\#0H\(" @(" @(" @("!7:&EC:#HZ
M=F%L=64@*R H0D]/4U1?5D%224%.5%]625-)5$%424].7U5.4D],3$E.1U],
M24U)5"D-"CP@(" @(" @(" ^(&YE>'1?=VAI8V@[#0H\( T*/" @(" @='EP
M961E9B!"3T]35%]04%]#050H<W1E<"P_at_0D]/4U1?5D%224%.5%]625-)5$%4
M24].7U5.4D],3$E.1U],24U)5"D-"CP@(" @(" @("!N97AT7W-T97 [#0H\
M( T*/" @(" @='EP961E9B!T>7!E;F%M92!N97AT7W-T97 Z.G1Y<&4@;F5X
M=%]T>7!E.PT*/" @(" @='EP961E9B!T>7!E;F%M92!I<U]S86UE/"!N97AT
M7W1Y<&4L87!P;'E?=FES:71O<E]U;G)O;&QE9" ^.CIT>7!E#0H\(" @(" @
M(" @:7-?87!P;'E?=FES:71O<E]U;G)O;&QE9#L-"CP@#0H\(" @("!R971U
M<FX@<&%R86U?=FES:71A=&EO;E]I;7!L* T*/" @(" @(" @(" @;&]G:6-A
M;%]W:&EC: T*/" @(" @(" @("P@=FES:71O<@T*/" @(" @(" @("P@:7-?
:87!P;'E?=FES:71O<E]U;G)O;&QE9"@I#0H`
`
end


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk