
"David Abrahams" <dave@boost-consulting.com> wrote in message news:ud68thd7w.fsf@boost-consulting.com...
"Andy Little" <andy@servocomm.freeserve.co.uk> writes:
To me that reads Dont Use Leading Underscores. Period.
Perhaps you need to lobby to have the wording changed to:
"Each name that begins with an underscore is reserved to the implementation in the global namespace".
Don't make work for the rest of us.
hmm... just pointing out the rules, which, if not followed, cause a large volume of macros and workarounds,obscure bugs and hence a lot of tedious and unnecessary work for somebody, but which, if followed, save that work for everybody. Rule actually reads: "Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace".
If you care about the issue, perhaps you need to lobby.
Rule is fine as it stands AFAICS. Whatever ... There is a rational header in boost/mpl/math/rational_c.hpp. but has no functionality. Enclosed is an implementation with some functionality. regards Andy Little begin 666 rational_c.txt M#0HC:69N9&5F($)/3U-47TU03%]2051)3TY!3%]#7TA04%])3D-,541%1 T* M(V1E9FEN92!"3T]35%]-4$Q?4D%424].04Q?0U](4%!?24Y#3%5$140-"@T* 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+0T*+R\@8F]O<W0O M;7!L+W)A=&EO;F%L7V,N:'!P(&AE861E<B!F:6QE#0HO+R!3964@:'1T<#HO M+W=W=RYB;V]S="YO<F<@9F]R('5P9&%T97,L(&1O8W5M96YT871I;VXL(&%N M9"!R979I<VEO;B!H:7-T;W)Y+@T*+R\M+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+0T*+R\-"B\O($-O<'ER:6=H=" H8RD@,C P,"TP,@T*+R\@ M06QE:W-E>2!'=7)T;W9O>0T*+R\-"B\O(%!E<FUI<W-I;VX@=&\@=7-E+"!C M;W!Y+"!M;V1I9GDL(&1I<W1R:6)U=&4@86YD('-E;&P@=&AI<R!S;V9T=V%R M90T*+R\@86YD(&ET<R!D;V-U;65N=&%T:6]N(&9O<B!A;GD@<'5R<&]S92!I M<R!H97)E8GD@9W)A;G1E9"!W:71H;W5T(&9E92P@#0HO+R!P<F]V:61E9"!T M:&%T('1H92!A8F]V92!C;W!Y<FEG:'0@;F]T:6-E(&%P<&5A<G,@:6X@86QL M(&-O<&EE<R!A;F0@#0HO+R!T:&%T(&)O=&@@=&AE(&-O<'ER:6=H="!N;W1I M8V4@86YD('1H:7,@<&5R;6ES<VEO;B!N;W1I8V4@87!P96%R(&EN( T*+R\@ M<W5P<&]R=&EN9R!D;V-U;65N=&%T:6]N+B!.;R!R97!R97-E;G1A=&EO;G,@ M87)E(&UA9&4@86)O=70@=&AE( T*+R\@<W5I=&%B:6QI='D@;V8@=&AI<R!S M;V9T=V%R92!F;W(@86YY('!U<G!O<V4N($ET(&ES('!R;W9I9&5D(")A<R!I M<R(@#0HO+R!W:71H;W5T(&5X<')E<W,@;W(@:6UP;&EE9"!W87)R86YT>2X- M"@T*+R\@;6]D<R!B>2!-871T:&EA<R!38VAA8F5L+"!*86X@3&%N9V5R(&%N M9"!!;F1Y(&QI='1L90T*#0HC:6YC;'5D92 B8F]O<W0O<W1A=&EC7V%S<V5R M="YH<' B#0HC:6YC;'5D92 B8F]O<W0O;7!L+W9O:60N:'!P(@T*(VEN8VQU M9&4@(F)O;W-T+VUP;"]I9BYH<' B#0HC:6YC;'5D92 B8F]O<W0O;6%T:"]C M;VUM;VY?9F%C=&]R+FAP<"(-"B-I;F-L=61E(")B;V]S="]M<&PO<&QU<RYH M<' B#0HC:6YC;'5D92 B8F]O<W0O;7!L+VUI;G5S+FAP<"(-"B-I;F-L=61E M(")B;V]S="]M<&PO;75L=&EP;&EE<RYH<' B#0HC:6YC;'5D92 B8F]O<W0O M;7!L+V1I=FED97,N:'!P(@T*(VEN8VQU9&4@(F)O;W-T+VUP;"]N96=A=&4N M:'!P(@T*+R\@861D(" @(&]R+"!A;F0@971C#0H-"B\O(&-O;7!I;&4@=&EM M92!R871I;VYA;"!N=6UB97(-"B\O('5S:6YG(&UP;"!O<&5R871O<G,-"@T* M;F%M97-P86-E(&)O;W-T>VYA;65S<&%C92!M<&Q[#0H-"B @("!T96UP;&%T M93P-"B @(" @(" @='EP96YA;64@26YT96=E<E1Y<&4L#0H@(" @(" @($EN M=&5G97)4>7!E($XL#0H@(" @(" @($EN=&5G97)4>7!E($0-"B @(" ^#0H@ M(" @<W1R=6-T(')A=&EO;F%L7V,@.PT*?7TO+V)O;W-T.CIM<&P-"@T*;F%M M97-P86-E(&)O;W-T>VYA;65S<&%C92!M<&Q[#0H-"B @("!T96UP;&%T93P- M"B @(" @(" @='EP96YA;64@26YT96=E<E1Y<&4L#0H@(" @(" @($EN=&5G M97)4>7!E($XL#0H@(" @(" @($EN=&5G97)4>7!E($0@/2 Q#0H@(" @/@T* M(" @('-T<G5C="!R871I;VYA;%]C('L-"B @("!P<FEV871E.@T*(" @(" @ M(" -"B @(" @(" @<W1A=&EC(&-O;G-T($EN=&5G97)4>7!E('!O<U]N=6UE M7VEN( T*(" @(" @(" ]($X@/CT@," _($X@.B M3CL-"B @(" @(" @<W1A M=&EC(&-O;G-T($EN=&5G97)4>7!E('!O<U]D96YO;5]I;B -"B @(" @(" @ M/2!$(#X](# @/R!$(#H@+40[#0H-"B @(" @(" @+R\@<W1A=&EC7V=C9"!R M971U<FYS('5N<VEG;F5D(&QO;F<-"B @(" @(" @<W1A=&EC(&-O;G-T($EN M=&5G97)4>7!E(&=C9" ]('-T871I8U]C87-T/$EN=&5G97)4>7!E/B -"B @ M(" @(" @*&)O;W-T.CIM871H.CIS=&%T:6-?9V-D/ T*(" @(" @(" @(" @ M<W1A=&EC7V-A<W0\=6YS:6=N960@;&]N9SXH<&]S7VYU;65?:6XI+ T*(" @ M(" @(" @(" @<W1A=&EC7V-A<W0\=6YS:6=N960@;&]N9SXH<&]S7V1E;F]M M7VEN*0T*(" @(" @(" ^.CIV86QU92D[#0H-"B @(" @(" @<W1A=&EC(&-O M;G-T($EN=&5G97)4>7!E(&YU;65?:6X@#0H@(" @(" @(#T@*"!.("H@1" ^ M/2 P*0T*(" @(" @(" _('!O<U]N=6UE7VEN( T*(" @(" @(" Z("UP;W-? M;G5M95]I;CL@#0H@(" @<'5B;&EC.@T*(" @(" @("!S=&%T:6,@8V]N<W0@ M26YT96=E<E1Y<&4@;G5M97)A=&]R(#T@;G5M95]I;B]G8V0[#0H@(" @(" @ M('-T871I8R!C;VYS="!);G1E9V5R5'EP92!D96YO;6EN871O<B ]('!O<U]D M96YO;5]I;B]G8V0[#0H@(" @<')I=F%T93H-"B @(" @(" @='EP961E9B!R M871I;VYA;%]C(#P-"B @(" @(" @(" @($EN=&5G97)4>7!E+ T*(" @(" @ M(" @(" @;G5M97)A=&]R+ T*(" @(" @(" @(" @9&5N;VUI;F%T;W(-"B @ M(" @(" @/B!M87EB95]T>7!E.PT*(" @('!U8FQI8SH@#0H@(" @(" @("\O M<')E=F5N="!D:78@, T*(" @(" @("!T>7!E9&5F('1Y<&5N86UE(&EF7V,\ M#0H@(" @(" @(" @("!S=&%T:6-?8V%S=#QB;V]L/BAD96YO;6EN871O<BDL M#0H@(" @(" @(" @("!M87EB95]T>7!E+ T*(" @(" @(" @(" @=F]I9%\- M"B @(" @(" @/CHZ='EP92!T>7!E.PT*#0H@(" @(" @("\O*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ#0H@(" @(" @("\O($AI+"!Y;W4@9V5T M(&AE<F4@#0H@(" @(" @("\O(&EF(&1E;F]M:6YA=&]R(&ES('IE<F\@:64@ M,2\P#0H@(" @(" @($)/3U-47U-4051)0U]!4U-%4E0H9&5N;VUI;F%T;W(I M.PT*(" @(" @(" O+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH- M"B @("!].PT*(" @#0H@(" @=&5M<&QA=&4\#0H@(" @(" @('1Y<&5N86UE M($EN=&5G97)4>7!E+ T*(" @(" @("!);G1E9V5R5'EP92!.+ T*(" @(" @ M("!);G1E9V5R5'EP92!$#0H@(" @/B -"B @("!S=')U8W0@;F5G871E/" - M"B @(" @(" @<F%T:6]N86Q?8SP-"B @(" @(" @(" @($EN=&5G97)4>7!E M+ T*(" @(" @(" @(" @3BP-"B @(" @(" @(" @($0-"B @(" @(" @/B - M"B @(" ^>R -"B @(" @(" @='EP961E9B!T>7!E;F%M92!R871I;VYA;%]C M/$EN=&5G97)4>7!E+"U.+$0^.CIT>7!E('1Y<&4[( T*(" @('T[#0H-"B @ M("!T96UP;&%T93P-"B @(" @(" @='EP96YA;64@26YT96=E<E1Y<&4L#0H@ M(" @(" O+R @='EP96YA;64@26YT96=E<E1Y<&4R+ T*(" @(" @("!);G1E M9V5R5'EP92!.,2P-"B @(" @(" @26YT96=E<E1Y<&4@1#$L#0H@(" @(" @ M($EN=&5G97)4>7!E($XR+ T*(" @(" @("!);G1E9V5R5'EP92!$,@T*(" @ M(#X@#0H@(" @<W1R=6-T('!L=7,\( T*(" @(" @(')A=&EO;F%L7V,\26YT M96=E<E1Y<&4L3C$L1#$^+ T*(" @(" @(')A=&EO;F%L7V,\26YT96=E<E1Y M<&4L3C(L1#(^( T*(" @(#Y[( T*(" @(" @("!T>7!E9&5F('1Y<&5N86UE M(')A=&EO;F%L7V,\#0H@(" @(" @(" @("!);G1E9V5R5'EP92P-"B @(" @ M(" @(" @($XQ("H@1#(@*R!.,B J($0Q+ T*(" @(" @(" @(" @1#$@*B!$ M,@T*(" @(" @(" ^.CIT>7!E('1Y<&4[( T*(" @('T[#0H@(" @#0H@(" @ M=&5M<&QA=&4\#0H@(" @(" @('1Y<&5N86UE($EN=&5G97)4>7!E+ T*(" @ M(" @("!);G1E9V5R5'EP92!.,2P-"B @(" @(" @26YT96=E<E1Y<&4@1#$L M#0H@(" @(" @($EN=&5G97)4>7!E($XR+ T*(" @(" @("!);G1E9V5R5'EP M92!$,@T*(" @(#X@#0H@(" @<W1R=6-T(&UI;G5S/ T*(" @(" @("!R871I M;VYA;%]C/$EN=&5G97)4>7!E+$XQ+$0Q/BP-"B @(" @(" @<F%T:6]N86Q? M8SQ);G1E9V5R5'EP92Q.,BQ$,CX@#0H@(" @/GL@#0H@(" @(" @('1Y<&5D M968@='EP96YA;64@<F%T:6]N86Q?8SP-"B @(" @(" @(" @($EN=&5G97)4 M>7!E+ T*(" @(" @(" @(" @3C$@*B!$,B M($XR("H@1#$L#0H@(" @(" @ M(" @("!$,2 J($0R#0H@(" @(" @(#XZ.G1Y<&4@='EP93L@#0H@(" @?3L- M"@T*(" @('1E;7!L871E/ T*(" @(" @("!T>7!E;F%M92!);G1E9V5R5'EP M92P-"B @(" @(" @26YT96=E<E1Y<&4@3C$L#0H@(" @(" @($EN=&5G97)4 M>7!E($0Q+ T*(" @(" @("!);G1E9V5R5'EP92!.,BP-"B @(" @(" @26YT M96=E<E1Y<&4@1#(-"B @(" ^( T*(" @('-T<G5C="!M=6QT:7!L:65S/ T* M(" @(" @("!R871I;VYA;%]C/$EN=&5G97)4>7!E+$XQ+$0Q/BP-"B @(" @ M(" @<F%T:6]N86Q?8SQ);G1E9V5R5'EP92Q.,BQ$,CX@#0H@(" @/GL@#0H@ M(" @(" @('1Y<&5D968@='EP96YA;64@<F%T:6]N86Q?8SP-"B @(" @(" @ M(" @($EN=&5G97)4>7!E+ T*(" @(" @(" @(" @3C$J3C(L#0H@(" @(" @ M(" @("!$,2I$,@T*(" @(" @(" ^.CIT>7!E('1Y<&4[( T*(" @('T[#0H- M"B @("!T96UP;&%T93P-"B @(" @(" @='EP96YA;64@26YT96=E<E1Y<&4L M#0H@(" @(" @($EN=&5G97)4>7!E($XQ+ T*(" @(" @("!);G1E9V5R5'EP M92!$,2P-"B @(" @(" @26YT96=E<E1Y<&4@3C(L#0H@(" @(" @($EN=&5G M97)4>7!E($0R#0H@(" @/B -"B @("!S=')U8W0@9&EV:61E<SP@#0H@(" @ M(" @('1Y<&5N86UE(')A=&EO;F%L7V,\26YT96=E<E1Y<&4L3C$L1#$^+ T* M(" @(" @("!T>7!E;F%M92!R871I;VYA;%]C/$EN=&5G97)4>7!E+$XR+$0R M/@T*(" @(#Y[#0H@(" @(" @('1Y<&5D968@='EP96YA;64@<F%T:6]N86Q? M8SP-"B @(" @(" @(" @(" @($EN=&5G97)4>7!E+ T*(" @(" @(" @(" @ M(" @3C$@*B!$,BP-"B @(" @(" @(" @(" @*"!.,2 ]/2 P("D@/R Q(#H@ M*$0Q("H@3C(I(" @#0H@(" @(" @(#XZ.G1Y<&4@='EP93L@#0H@(" @?3L- M"@T*?2!]+R]B;V]S=#HZ;7!L#0H-"B-E;F1I9B O+T)/3U-47TU03%]2051) M3TY!3%]#7TA04%])3D-,541%1 T*#0HO+R!T97-T#0HO+R-I;F-L=61E(")R M871I;VYA;%]C+FAP<"(-"B-I;F-L=61E(#QI;W-T<F5A;3X-"FEN="!M86EN M*"D@#0I[#0H@(" @=7-I;F<@8F]O<W0Z.FUP;#HZ<F%T:6]N86Q?8SL-"B @ M("!U<VEN9R!N86UE<W!A8V4@8F]O<W0[#0H-"B @("!T>7!E9&5F(')A=&EO M;F%L7V,\:6YT+#0L,CX@<F%T7V$[#0H@(" @<W1D.CIC;W5T(#P\(G)A=%]A M(#T@(B \/"!R871?83HZ;G5M97)A=&]R(#P\)R\G#0H@(" @/#P@<F%T7V$Z M.F1E;F]M:6YA=&]R(#P\)UQN)SL-"@T*(" @('1Y<&5D968@<F%T:6]N86Q? M8SQI;G0L,RPV/B!R871?8CL-"B @("!S=&0Z.F-O=70@/#PB<F%T7V(@/2 B M(#P\(')A=%]B.CIN=6UE<F%T;W(@/#PG+R<-"B @(" \/"!R871?8CHZ9&5N M;VUI;F%T;W(@/#PG7&XG.PT*#0H@(" @='EP961E9B!M<&PZ.G!L=7,\<F%T M7V$L<F%T7V(^.CIT>7!E(')A=%]P;'5S.PT*(" @('-T9#HZ8V]U=" \/")R M871?82 K(')A=%]B(#T@(B \/"!R871?<&QU<SHZ;G5M97)A=&]R(#P\)R\G M#0H@(" @/#P@<F%T7W!L=7,Z.F1E;F]M:6YA=&]R(#P\)UQN)SL-"@T*(" @ M('1Y<&5D968@;7!L.CIM:6YU<SQR871?82QR871?8CXZ.G1Y<&4@<F%T7VUI M;G5S.PT*(" @('-T9#HZ8V]U=" \/")R871?82 M(')A=%]B(#T@(B \/"!R M871?;6EN=7,Z.FYU;65R871O<B \/"<O)PT*(" @(#P\(')A=%]M:6YU<SHZ M9&5N;VUI;F%T;W(@/#PG7&XG.PT*#0H@(" @='EP961E9B!M<&PZ.FUU;'1I M<&QI97,\<F%T7V$L<F%T7V(^.CIT>7!E(')A=%]M=6QT:7!L:65S.PT*(" @ M('-T9#HZ8V]U=" \/")R871?82 J(')A=%]B(#T@(B \/"!R871?;75L=&EP M;&EE<SHZ;G5M97)A=&]R(#P\)R\G#0H@(" @/#P@<F%T7VUU;'1I<&QI97,Z M.F1E;F]M:6YA=&]R(#P\)UQN)SL-"@T*(" @('1Y<&5D968@;7!L.CID:79I M9&5S/')A=%]A+')A=%]B/CHZ='EP92!R871?9&EV:61E<SL-"B @("!S=&0Z M.F-O=70@/#PB<F%T7V$@+R!R871?8B ]("(@/#P@<F%T7V1I=FED97,Z.FYU M;65R871O<B \/"<O)PT*(" @(#P\(')A=%]D:79I9&5S.CID96YO;6EN871O M<B \/"=<;B<[#0H-"B @("!T>7!E9&5F(&UP;#HZ;F5G871E/')A=%]A/CHZ M='EP92!R871?;F5G7V$[#0H@(" @<W1D.CIC;W5T(#P\(BT@;F5G7V$@/2 B M(#P\(')A=%]N96=?83HZ;G5M97)A=&]R(#P\)R\G#0H@(" @/#P@<F%T7VYE M9U]A.CID96YO;6EN871O<B \/"=<;B<[#0H-"B-I9B P#0H@(" @+R\@8VAE M8VL@9&EV(# -"B @(" @='EP961E9B!R871I;VYA;%]C/&EN="PT+# ^(')A M=%]B860[#0H@(" @('-T9#HZ8V]U=" \/"!R871?8F%D.CID96YO;6EN871O ;<B \/"=<;B<[#0HC96YD:68@(" -"GT-"@T* ` end