Boost logo

Boost :

From: Fredrik Blomqvist (fredrik_blomqvist_at_[hidden])
Date: 2004-05-07 17:25:37


Jaakko Jarvi wrote:
> On May 4, 2004, at 7:56 PM, Fredrik Blomqvist wrote:
>
>> I think it would be convenient if one could treat std::pair as a
>> boost two-tuple.
>> Both tuples::tie and tuple assignment already work with std::pair but
>> I've noticed that the get<> accessor doesn't.
>>
>> So, I propose a simple extension to tuples::get<> with the obvious
>> semantics:
>> boost::get<0>(p) == p.first
>> boost::get<1>(p) == p.second
>>
> The trouble with get is that pairs live in namespace std, so if pair
> get's are not in std, they won't get found by ADL.
Ah, that's true..

> But if we are willing to live
> with not having ADL, adding gets for pairs would be fine.
As this was mostly a convenience addition I think it's still ok.
I didn't strive for complete tuple<->pair transparency just slightly
better interoperability.

> Please send a patch or code.
>
Attached patches for:
    tuple/detail/tuple_basic.hpp
    tuple/detail/tuple_basic_no_partial_spec.hpp
    libs/tuple/test/tuple_test_bench.cpp

The code is tested with VC7.1 both using the default tuple_basic.hpp
path (that uses PTS) and forced tuple_basic_no_partial_spec.hpp.
I tried to follow the existing code and thus hope that most/all previous
regressions will pass...

The PTS branch in tuple_basic.hpp also supports the length<> and
element<> metafunctions since I found that to be the least intrusive
way of adding get<>(pair) support. Is this a good thing? (I think so).
Or should the changes be limited to _only_ the get<> accessor?

Making the non PTS path support element<> would require more
changes to the legacy code than I think is reasonable right now(?).
I think it should simply be left disabled.

Only a smaller additional test-suite is added. Don't really know if it's
necessary to expand it and mirror/interleave it with the existing ones?

I haven't made any documentation changes (yet).

Hope this can be added!
// Fredrik Blomqvist

begin 666 tuple_basic_no_partial_spec.patch
M26YD97_at_Z(&)O;W-T+W1U<&QE+V1E=&%I;"]T=7!L95]B87-I8U]N;U]P87)T
M:6%L7W-P96,N:'!P#0H]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]#0I20U,@9FEL
M93H@+V-V<W)O;W0O8F]O<W0O8F]O<W0O8F]O<W0O='5P;&4O9&5T86EL+W1U
M<&QE7V)A<VEC7VYO7W!A<G1I86Q?<W!E8RYH<' L=@T*<F5T<FEE=FEN9R!R
M979I<VEO;B Q+C$W#0ID:69F("UU("UR,2XQ-R!T=7!L95]B87-I8U]N;U]P
M87)T:6%L7W-P96,N:'!P#0HM+2T_at_8F]O<W0O='5P;&4O9&5T86EL+W1U<&QE
M7V)A<VEC7VYO7W!A<G1I86Q?<W!E8RYH<' ),3D_at_3F]V(#(P,#,@,C(Z,#$Z
M-3(@+3 P,# ),2XQ-PT**RLK(&)O;W-T+W1U<&QE+V1E=&%I;"]T=7!L95]B
M87-I8U]N;U]P87)T:6%L7W-P96,N:'!P"3<@36%Y(#(P,#0@,3DZ-34Z,34@
M+3 P,# -"D! ("TT-3<L-B K-#4W+#DQ($! #0H@(" @(" @?0T*(" @("!]
M.PT*( T**R @(" O+R!F;W(@<W1D.CIP86ER#0HK(" @('1E;7!L871E(#QI
M;G0_at_3CX-"BL@(" @<W1R=6-T(&=E=%]P86ER#0HK(" @(" @(" [("\O(&YO
M(&1E9F%U;'0@:6UP;&5M96YT871I;VX-"BL-"BL@(" @=&5M<&QA=&4\/@T*
M*R @("!S=')U8W0_at_9V5T7W!A:7(\,#X-"BL@(" @>PT**R @(" @(" @=&5M
M<&QA=&4@/&-L87-S(%!A:7(^#0HK(" @(" @("!S=')U8W0_at_96QE;65N=%]R
M968-"BL@(" @(" @('L-"BL@(" @(" @('!R:79A=&4Z#0HK(" @(" @(" @
M(" @='EP961E9B!T>7!E;F%M92!086ER.CIF:7)S=%]T>7!E(&5L=%]T>7!E
M.PT**R @(" @(" @<'5B;&EC._at_T**R @(" @(" @(" @('1Y<&5D968@='EP
M96YA;64_at_861D7W)E9F5R96YC93QE;'1?='EP93XZ.G1Y<&4_at_[hidden]**R @
M(" @(" @(" @('1Y<&5D968_at_4D54('1Y<&4[#0HK(" @(" @("!].PT**PT*
M*R @(" @(" @=&5M<&QA=&4@/&-L87-S(%!A:7(^#0HK(" @(" @("!S=')U
M8W0_at_96QE;65N=%]C;VYS=%]R968-"BL@(" @(" @('L-"BL@(" @(" @('!R
M:79A=&4Z#0HK(" @(" @(" @(" @='EP961E9B!T>7!E;F%M92!086ER.CIF
M:7)S=%]T>7!E(&5L=%]T>7!E.PT**R @(" @(" @<'5B;&EC._at_T**R @(" @
M(" @(" @('1Y<&5D968@='EP96YA;64_at_861D7W)E9F5R96YC93QC;VYS="!E
M;'1?='EP93XZ.G1Y<&4_at_[hidden]**R @(" @(" @(" @('1Y<&5D968_at_4D54
M('1Y<&4[#0HK(" @(" @("!].PT**PT**R @(" @(" @=&5M<&QA=&4@/'1Y
M<&5N86UE(%0P+"!T>7!E;F%M92!4,3X-"BL@(" @(" @('-T871I8R!I;FQI
M;F4-"BL@(" @(" @('1Y<&5N86UE(&%D9%]R969E<F5N8V4\5# ^.CIT>7!E
M#0HK(" @(" @("!G970H<W1D.CIP86ER/%0P+%0Q/B8@="D-"BL@(" @(" @
M('L-"BL@(" @(" @(" @("!R971U<FX@="YF:7)S=#L-"BL@(" @(" @('T-
M"BL-"BL@(" @(" @('1E;7!L871E(#QT>7!E;F%M92!4,"P@='EP96YA;64@
M5#$^#0HK(" @(" @("!S=&%T:6,@:6YL:6YE#0HK(" @(" @("!T>7!E;F%M
M92!A9&1?<F5F97)E;F-E/&-O;G-T(%0P/CHZ='EP90T**R @(" @(" @9V5T
M*&-O;G-T('-T9#HZ<&%I<CQ4,"Q4,3XF('0I#0HK(" @(" @("![#0HK(" @
M(" @(" @(" @<F5T=7)N('0N9FER<W0[#0HK(" @(" @("!]#0HK(" @('T[
M#0HK#0HK(" @('1E;7!L871E/#X-"BL@(" @<W1R=6-T(&=E=%]P86ER/#$^
M#0HK(" @('L-"BL@(" @(" @('1E;7!L871E(#QC;&%S<R!086ER/@T**R @
M(" @(" @<W1R=6-T(&5L96UE;G1?<F5F#0HK(" @(" @("![#0HK(" @(" @
M("!P<FEV871E._at_T**R @(" @(" @(" @('1Y<&5D968@='EP96YA;64_at_4&%I
M<CHZ<V5C;VYD7W1Y<&4_at_96QT7W1Y<&4[#0HK(" @(" @("!P=6)L:6,Z#0HK
M(" @(" @(" @(" @='EP961E9B!T>7!E;F%M92!A9&1?<F5F97)E;F-E/&5L
M=%]T>7!E/CHZ='EP92!2150[#0HK(" @(" @(" @(" @='EP961E9B!2150@
M='EP93L-"BL@(" @(" @('T[#0HK#0HK(" @(" @("!T96UP;&%T92 \8VQA
M<W,@4&%I<CX-"BL@(" @(" @('-T<G5C="!E;&5M96YT7V-O;G-T7W)E9_at_T*
M*R @(" @(" @>PT**R @(" @(" @<')I=F%T93H-"BL@(" @(" @(" @("!T
M>7!E9&5F('1Y<&5N86UE(%!A:7(Z.G-E8V]N9%]T>7!E(&5L=%]T>7!E.PT*
M*R @(" @(" @<'5B;&EC._at_T**R @(" @(" @(" @('1Y<&5D968@='EP96YA
M;64_at_861D7W)E9F5R96YC93QC;VYS="!E;'1?='EP93XZ.G1Y<&4_at_[hidden]*
M*R @(" @(" @(" @('1Y<&5D968_at_4D54('1Y<&4[#0HK(" @(" @("!].PT*
M*PT**R @(" @(" @=&5M<&QA=&4@/'1Y<&5N86UE(%0P+"!T>7!E;F%M92!4
M,3X-"BL@(" @(" @('-T871I8R!I;FQI;F4-"BL@(" @(" @('1Y<&5N86UE
M(&%D9%]R969E<F5N8V4\5#$^.CIT>7!E#0HK(" @(" @("!G970H<W1D.CIP
M86ER/%0P+%0Q/B8@="D-"BL@(" @(" @('L-"BL@(" @(" @(" @("!R971U
M<FX@="YS96-O;F0[#0HK(" @(" @("!]#0HK#0HK(" @(" @("!T96UP;&%T
M92 \='EP96YA;64_at_5# L('1Y<&5N86UE(%0Q/@T**R @(" @(" @<W1A=&EC
M(&EN;&EN90T**R @(" @(" @='EP96YA;64_at_861D7W)E9F5R96YC93QC;VYS
M="!4,3XZ.G1Y<&4-"BL@(" @(" @(&=E="AC;VYS="!S=&0Z.G!A:7(\5# L
M5#$^)B!T*0T**R @(" @(" @>PT**R @(" @(" @(" @(')E='5R;B!T+G-E
M8V]N9#L-"BL@(" @(" @('T-"BL@(" @?3L-"BL-"B @(" @?2 O+R!N86UE
M<W!A8V4_at_9&5T86EL#0H@#0H@(" @("\O('1U<&QE(&-L87-S#0I 0" M-38X
M+#8@*S8U,RPR,B! 0 T*(" @("![#0H@(" @(" @<F5T=7)N(&1E=&%I;#HZ
M9V5T7V-L87-S/$X^.CIG970H="D[#0H@(" @('T-"BL-"BL@(" @+R\@;W9E
M<FQO860_at_9F]R('-T9#HZ<&%I<@T**R @("!T96UP;&%T92 \:6YT($XL('1Y
M<&5N86UE(%0P+"!T>7!E;F%M92!4,3X-"BL@(" @='EP96YA;64_at_9&5T86EL
M.CIG971?<&%I<CQ./CHZ0D]/4U1?3D535$5$7U1%35!,051%(&5L96UE;G1?
M<F5F/'-T9#HZ<&%I<CQ4,"Q4,3X@/CHZ4D54#0HK(" @(&=E="AS=&0Z.G!A
M:7(\5# L5#$^)B!T+"!D971A:6PZ.G=O<FMA<F]U;F1?:&]L9&5R/$X^*B ]
M(# I#0HK(" @('L-"BL@(" @(" @(')E='5R;B!D971A:6PZ.F=E=%]P86ER
M/$X^.CIG970H="D[#0HK(" @('T-"BL-"BL@(" @=&5M<&QA=&4@/&EN="!.
M+"!T>7!E;F%M92!4,"P@='EP96YA;64_at_5#$^#0HK(" @('1Y<&5N86UE(&1E
M=&%I;#HZ9V5T7W!A:7(\3CXZ.D)/3U-47TY%4U1%1%]414U03$%412!E;&5M
M96YT7V-O;G-T7W)E9CQS=&0Z.G!A:7(\5# L5#$^(#XZ.E)%5 T**R @("!G
M970H8V]N<W0@<W1D.CIP86ER/%0P+%0Q/B8@="P_at_9&5T86EL.CIW;W)K87)O
M=6YD7VAO;&1E<CQ./BH@/2 P*0T**R @("![#0HK(" @(" @("!R971U<FX@
M9&5T86EL.CIG971?<&%I<CQ./CHZ9V5T*'0I.PT**R @("!]#0HK#0H@#0H@
M(" @("\O($UA:V4_at_82!T=7!L90T*(" @("!T96UP;&%T93QT>7!E;F%M92!4
$,3X-"@``
`
end

begin 666 tuple_test_bench.patch
M26YD97_at_Z(&QI8G,O='5P;&4O=&5S="]T=7!L95]T97-T7V)E;F-H+F-P< T*
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0T*4D-3(&9I;&4Z("]C=G-R;V]T+V)O
M;W-T+V)O;W-T+VQI8G,O='5P;&4O=&5S="]T=7!L95]T97-T7V)E;F-H+F-P
M<"QV#0IR971R:65V:6YG(')E=FES:6]N(#$N,C -"F1I9F8@+74@+7(Q+C(P
M('1U<&QE7W1E<W1?8F5N8V_at_N8W!P#0HM+2T@;&EB<R]T=7!L92]T97-T+W1U
M<&QE7W1E<W1?8F5N8V_at_N8W!P"34_at_4V5P(#(P,#,@,38Z-3(Z-34@+3 P,# )
M,2XR, T**RLK(&QI8G,O='5P;&4O=&5S="]T=7!L95]T97-T7V)E;F-H+F-P
M< DW($UA>2 R,# T(#(Q.C$R.C Q("TP,# P#0I 0" M-#4R+#8@*S0U,BPT
M,"! 0 T*('T-"B -"B -"BMV;VED('1U<&QE7W!A:7)?:6YT97)O<&5R86)I
M;&ET>5]T97-T*"D-"BM[#0HK(" @('1Y<&5D968@<W1D.CIP86ER/&EN="P@
M9FQO870^(% Q.PT**PT**R-I9FYD968_at_0D]/4U1?3D]?5$5-4$Q!5$5?4$%2
M5$E!3%]34$5#24%,25I!5$E/3_at_T**R @("!"3T]35%]35$%424-?05-315)4
M*'1U<&QE<SHZ;&5N9W1H/% Q/CHZ=F%L=64@/3T@,BD[#0HK(V5N9&EF#0HK
M#0HK(" @(% Q(' Q.PT**R @("!G970\,#XH<#$I(#T@,3(S.PT**PT**R @
M("!"3T]35%]415-4*&=E=#PP/BAP,2D@/3T@,3(S*3L-"BL@(" @0D]/4U1?
M5$535"AP,2YF:7)S=" ]/2 Q,C,I.PT**PT**R @("!G970\,3XH<#$I(#T@
M,RXQ-&8[#0HK(" @($)/3U-47U1%4U0H9V5T/#$^*' Q*2 \(#,N,35F("8F
M(&=E=#PQ/BAP,2D@/B S+C$S9BD[#0HK(" @($)/3U-47U1%4U0H<#$N<V5C
M;VYD(#P@,RXQ-68@)B8@<#$N<V5C;VYD(#X@,RXQ,V8I.PT**PT**R @(" K
M*V=E=#PP/BAP,2D[#0HK(" @($)/3U-47U1%4U0H<#$N9FER<W0@/3T@,3(T
M*3L-"BL-"BL@(" @<W1D.CIP86ER/&1O=6)L92P_at_8V]N<W0_at_8VAA<CX@<#(H
M,2XU+" G>"<I.PT**R @("!"3T]35%]415-4*&=E=#PP/BAP,BD@/" Q+C4Q
M*3L-"BLO+R @9V5T/# ^*' R*2 ]("=Y)SLO+R!S:&]U;&1N)W0_at_8V]M<&EL
M90T**R\O("!P,BYS96-O;F0@/2 G>2<[("\O('-H;W5L9&XG="!C;VUP:6QE
M#0HK(" @($)/3U-47U1%4U0H9V5T/#$^*' R*2 ]/2 G>"<I.PT**R\O(" K
M*V=E=#PQ/BAP,BD[(" @("\O('-H;W5L9&XG="!C;VUP:6QE#0HK#0HK(" @
M(&-O;G-T('-T9#HZ<&%I<CQI;G0L(&)O;VP^(' S*#0R+"!T<G5E*3L-"BL@
M(" @0D]/4U1?5$535"AG970\,#XH<#,I(#T](#0R*3L-"BL@(" @0D]/4U1?
M5$535"AG970\,3XH<#,I(#T]('1R=64I.PT**WT-"BL-"BL-"B -"B -"B O
M+R M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0I 0" M-#<Q+#$R
M("LU,#4L-B! 0 T*(" @8V]N<U]T97-T*"D[#0H@("!C;VYS=%]T=7!L95]T
M97-T*"D[#0H@("!T=7!L95]L96YG=&A?=&5S="@I.PT**R @='5P;&5?<&%I
M<E]I;G1E<F]P97)A8FEL:71Y7W1E<W0H*3L-"B @(')E='5R;B P.PT*('T-
6"BT-"BT-"BT-"BT-"BT-"BT-"BT-"@``
`
end

begin 666 tuple_basic.patch
M26YD97_at_Z(&)O;W-T+W1U<&QE+V1E=&%I;"]T=7!L95]B87-I8RYH<' -"CT]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T-"E)#4R!F:6QE.B O8W9S<F]O="]B;V]S
M="]B;V]S="]B;V]S="]T=7!L92]D971A:6PO='5P;&5?8F%S:6,N:'!P+'8-
M"G)E=')I979I;F<@<F5V:7-I;VX@,2XR,PT*9&EF9B M=2 M<C$N,C,@='5P
M;&5?8F%S:6,N:'!P#0HM+2T_at_8F]O<W0O='5P;&4O9&5T86EL+W1U<&QE7V)A
M<VEC+FAP< DR."!/8W0@,C P,R P.3HT,CHT,R M,# P, DQ+C(S#0HK*RL@
M8F]O<W0O='5P;&4O9&5T86EL+W1U<&QE7V)A<VEC+FAP< DW($UA>2 R,# T
M(#(P.C P.C,W("TP,# P#0I 0" M,3(P+#8@*S$R,"PT,B! 0 T*(" @?0T*
M('T[#0H@#0HK+R\@9F]R('-T9#HZ<&%I<@T**W1E;7!L871E(#QI;G0_at_3CX-
M"BMS=')U8W0_at_9V5T7W!A:7(-"BL@(" @.R O+R!N;R!D969A=6QT(&EM<&QE
M;65N=&%T:6]N#0HK#0HK=&5M<&QA=&4\/@T**W-T<G5C="!G971?<&%I<CPP
M/@T**WL-"BL@(" @=&5M<&QA=&4@/&-L87-S(%)%5"P_at_8VQA<W,@5# L(&-L
M87-S(%0Q/@T**R @("!I;FQI;F4@<W1A=&EC(%)%5"!G970H8V]N<W0@<W1D
M.CIP86ER/%0P+%0Q/B8@="D-"BL@(" @>PT**R @(" @(" @<F5T=7)N('0N
M9FER<W0[#0HK(" @('T-"BL@(" @=&5M<&QA=&4@/&-L87-S(%)%5"P_at_8VQA
M<W,@5# L(&-L87-S(%0Q/@T**R @("!I;FQI;F4@<W1A=&EC(%)%5"!G970H
M<W1D.CIP86ER/%0P+%0Q/B8@="D-"BL@(" @>PT**R @(" @(" @<F5T=7)N
M('0N9FER<W0[#0HK(" @('T-"BM].PT**PT**W1E;7!L871E/#X-"BMS=')U
M8W0_at_9V5T7W!A:7(\,3X-"BM[#0HK(" @('1E;7!L871E(#QC;&%S<R!2150L
M(&-L87-S(%0P+"!C;&%S<R!4,3X-"BL@(" @:6YL:6YE('-T871I8R!2150@
M9V5T*&-O;G-T('-T9#HZ<&%I<CQ4,"Q4,3XF('0I#0HK(" @('L-"BL@(" @
M(" @(')E='5R;B!T+G-E8V]N9#L-"BL@(" @?0T**R @("!T96UP;&%T92 \
M8VQA<W,@4D54+"!C;&%S<R!4,"P_at_8VQA<W,@5#$^#0HK(" @(&EN;&EN92!S
M=&%T:6,@4D54(&=E="AS=&0Z.G!A:7(\5# L5#$^)B!T*0T**R @("![#0HK
M(" @(" @("!R971U<FX@="YS96-O;F0[#0HK(" @('T-"BM].PT**PT**PT*
M('T@+R\@96YD(&]F(&YA;65S<&%C92!D971A:6P-"B -"B -"D! ("TQ-3<L
M-B K,3DS+#,R($! #0H@("!T>7!E9&5F('1Y<&5N86UE(&)O;W-T.CIA9&1?
M8V]N<W0\='EP96YA;64_at_5#HZ:&5A9%]T>7!E/CHZ='EP92!T>7!E.PT*('T[
M#0H@#0HK+R\@<W!E8VEA;&EZ871I;VYS(&9O<B!S=&0Z.G!A:7(-"BMT96UP
M;&%T92 \8VQA<W,@5# L(&-L87-S(%0Q/@T**W-T<G5C="!E;&5M96YT/# L
M('-T9#HZ<&%I<CQ4,"Q4,3X@/@T**WL-"BL@(" @='EP961E9B!4,"!T>7!E
M.PT**WT[#0HK#0HK=&5M<&QA=&4@/&-L87-S(%0P+"!C;&%S<R!4,3X-"BMS
M=')U8W0_at_96QE;65N=#PQ+"!S=&0Z.G!A:7(\5# L5#$^(#X-"BM[#0HK(" @
M('1Y<&5D968_at_5#$@='EP93L-"BM].PT**PT**W1E;7!L871E(#QC;&%S<R!4
M,"P_at_8VQA<W,@5#$^#0HK<W1R=6-T(&5L96UE;G0\,"P_at_8V]N<W0@<W1D.CIP
M86ER/%0P+%0Q/B ^#0HK>PT**R @("!T>7!E9&5F('1Y<&5N86UE(&)O;W-T
M.CIA9&1?8V]N<W0\5# ^.CIT>7!E('1Y<&4[#0HK?3L-"BL-"BMT96UP;&%T
M92 \8VQA<W,@5# L(&-L87-S(%0Q/@T**W-T<G5C="!E;&5M96YT/#$L(&-O
M;G-T('-T9#HZ<&%I<CQ4,"Q4,3X@/@T**WL-"BL@(" @='EP961E9B!T>7!E
M;F%M92!B;V]S=#HZ861D7V-O;G-T/%0Q/CHZ='EP92!T>7!E.PT**WT[#0HK
M#0HK#0H@+R\@+6=E="!F=6YC=&EO;B!T96UP;&%T97,@+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"B O+R!5<V%G
M93H_at_9V5T/$X^*&%4=7!L92D-"B -"D! ("TR,38L-B K,C<X+#,T($! #0H@
M(" @(" @(" @/CHZ8V]N<W1?='EP93XH8RD[#0H@?0T*( T**R\O(&]V97)L
M;V%D<R!F;W(@<W1D.CIP86ER#0HK=&5M<&QA=&4@/&EN="!.+"!C;&%S<R!4
M,"P_at_8VQA<W,@5#$^#0HK:6YL:6YE('1Y<&5N86UE(&%C8V5S<U]T<F%I=',\
M#0HK(" @(" @(" @(" @(" @(" @("!T>7!E;F%M92!E;&5M96YT/$XL('-T
M9#HZ<&%I<CQ4,"Q4,3X@/CHZ='EP90T**R @(" @(" @(" @(" @(" ^.CIN
M;VY?8V]N<W1?='EP90T**V=E="AS=&0Z.G!A:7(\5# L5#$^)B!C($)/3U-4
M7T%04$5.1%]%6%!,24-)5%]414U03$%415].3TY?5%E012AI;G0L($XI*0T*
M*WL-"BL@(" @<F5T=7)N(&1E=&%I;#HZ9V5T7W!A:7(\3CXZ.D)/3U-47TY%
M4U1%1%]414U03$%410T**R @(" @(" @9V5T/ T**R @(" @(" @(" @('1Y
M<&5N86UE(&%C8V5S<U]T<F%I=',\#0HK(" @(" @(" @(" @(" @('1Y<&5N
M86UE(&5L96UE;G0\3BP@<W1D.CIP86ER/%0P+%0Q/B ^.CIT>7!E#0HK(" @
M(" @(" ^.CIN;VY?8V]N<W1?='EP93XH8RD[#0HK?0T**PT**W1E;7!L871E
M(#QI;G0_at_3BP@8VQA<W,@5# L(&-L87-S(%0Q/@T**VEN;&EN92!T>7!E;F%M
M92!A8V-E<W-?=')A:71S/ T**R @(" @(" @(" @(" @(" @(" @='EP96YA
M;64_at_96QE;65N=#Q.+"!S=&0Z.G!A:7(\5# L5#$^(#XZ.G1Y<&4-"BL@(" @
M(" @(" @(" @(" @/CHZ8V]N<W1?='EP90T**V=E="AC;VYS="!S=&0Z.G!A
M:7(\5# L5#$^)B!C($)/3U-47T%04$5.1%]%6%!,24-)5%]414U03$%415].
M3TY?5%E012AI;G0L($XI*0T**WL-"BL@(" @<F5T=7)N(&1E=&%I;#HZ9V5T
M7W!A:7(\3CXZ.D)/3U-47TY%4U1%1%]414U03$%410T**R @(" @(" @9V5T
M/ T**R @(" @(" @(" @('1Y<&5N86UE(&%C8V5S<U]T<F%I=',\#0HK(" @
M(" @(" @(" @(" @('1Y<&5N86UE(&5L96UE;G0\3BP@<W1D.CIP86ER/%0P
M+%0Q/B ^.CIT>7!E#0HK(" @(" @(" ^.CIC;VYS=%]T>7!E/BAC*3L-"BM]
M#0HK#0HK#0H@+R\@+2T@=&AE(&-O;G,@=&5M<&QA=&4@("TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H@;F%M
M97-P86-E(&1E=&%I;"![#0H@#0I 0" M-#$U+#8@*S4P-2PQ,B! 0 T*('1E
M;7!L871E/#X-"B!S=')U8W0@;&5N9W1H/&YU;&Q?='EP93X@>PT*(" @0D]/
M4U1?4U1!5$E#7T-/3E-404Y4*&EN="P@=F%L=64@/2 P*3L-"BM].PT**PT*
M*W1E;7!L871E/&-L87-S(%0P+"!C;&%S<R!4,3X-"BMS=')U8W0@;&5N9W1H
M/'-T9#HZ<&%I<CQ4,"Q4,3X@/@T**WL-"BL@(" @0D]/4U1?4U1!5$E#7T-/
D3E-404Y4*&EN="P@=F%L=64@/2 R*3L-"B!].PT*( T*( T*
`
end


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