Little patch for static_assert.hpp

Hi John, apropos gcc's -Wundef :) The attached patch allows to compile static_assert.hpp with that option turned on. While I was at it I've also changed the license reference text and removed a spurious space at the end of the line that begins with 'agurt 15/sep/02:'. Maybe BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS could be removed too (replacing it with __BORLANDC__) PS: What's 'agurt'? -- Genny. begin 644 static_assert.hpp.diff M1FEL92!D:69F97)E;F-E(')E<&]R="!G96YE<F%T960@8GD@0U-$:69F(&)Y M($-O;7!O;F5N=%-O9G1W87)E(&]N(#(P+S`S+S(P,#0@,3DN,C`-"@T*0F%S M92!F:6QE.B!#.EQ$3T-5345^,5Q!1$U)3DE^,5Q)35!/4U1^,5Q496UP7'-T M871I8U]A<W-E<G1?;W)I9U\S+FAP<`T*0V]M<&%R960@9FEL93H@1#I<0U93 M(%)E<'-<8F]O<W1<8F]O<W1<8F]O<W1<8F]O<W1<8F]O<W1<<W1A=&EC7V%S M<V5R="YH<'`-"@T*,2PU8S$L-0T*/"`O+R`@*$,I($-O<'ER:6=H="!*;VAN M($UA9&1O8VL@,C`P,"X-"CP@+R\@(%5S92P@;6]D:69I8V%T:6]N(&%N9"!D M:7-T<FEB=71I;VX@87)E('-U8FIE8W0@=&\@=&AE(`T*/"`O+R`@0F]O<W0@ M4V]F='=A<F4@3&EC96YS92P@5F5R<VEO;B`Q+C`N("A3964@86-C;VUP86YY M:6YG(&9I;&4@#0H\("\O("!,24-%3E-%7S%?,"YT>'0@;W(@8V]P>2!A="!H M='1P.B\O=W=W+F)O;W-T+F]R9R],24-%3E-%7S%?,"YT>'0I#0H\(`T*+2TM M#0H^("\O("`@("`@("`@("`@*$,I($-O<'ER:6=H="!*;VAN($UA9&1O8VL@ M,C`P,"X-"CX@+R\@1&ES=')I8G5T960@=6YD97(@=&AE($)O;W-T(%-O9G1W M87)E($QI8V5N<V4L(%9E<G-I;VX@,2XP+@T*/B`O+R`@("`H4V5E(&%C8V]M M<&%N>6EN9R!F:6QE($Q)0T5.4T5?,5\P+G1X="!O<B!C;W!Y(&%T#0H^("\O M("`@("`@("`@(&AT='`Z+R]W=W<N8F]O<W0N;W)G+TQ)0T5.4T5?,5\P+G1X M="D-"CX@+R\-"C8Q8S8Q#0H\("`@("`A0D]/4U1?5T]22T%23U5.1"A?7TU7 M15)+4U]?+"`\(#!X,S`P,RD-"BTM+0T*/B`@("`@(2AD969I;F5D(%]?35=% M4DM37U\@)B8@0D]/4U1?5T]22T%23U5.1"A?7TU715)+4U]?+"`\(#!X,S`P M,RDI#0HW-F,W-@T*/"`O+R!A9W5R="`Q-2]S97`O,#(Z(&$@<W!E8VEA;"!C M87)E(&ES(&YE961E9"!T;R!F;W)C92!);G1E;"!#*RL@:7-S=64@86X@97)R M;W(@#0HM+2T-"CX@+R\@86=U<G0@,34O<V5P+S`R.B!A('-P96-I86P@8V%R M92!I<R!N965D960@=&\@9F]R8V4@26YT96P@0RLK(&ES<W5E(&%N(&5R<F]R M#0H-"@T*/"TM+2TM+2TM+2TM+2TM+2TM+2TM+2`@16YD(&]F(')E<&]R="`@ :+2TM+2TM+2TM+2TM+2TM+2TM+2TM/@T*#0HM ` end

Looking further at the header, I noticed that BOOST_WORKAROUND is only used for __MWERKS__. Why? I guess it only makes sense to use it for Borland, actually, because that would allow to detect when the workaround will be outdated. If you agree with that, attached is a different patch. Secondly, is it ok that 'STATIC_ASSERTION_FAILURE' is all-uppercase but not prefixed by 'BOOST_'? -- Genny. begin 644 patch2.txt M*BHJ('-T871I8U]A<W-E<G0N:'!P"5-A="!-87(@,C`@,C`Z,3DZ-3<@,C`P M-`HM+2T@<W1A=&EC7V%S<V5R="YH<'`N;F5W"5-A="!-87(@,C`@,C`Z,#0Z M,3,@,C`P-`HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#$L."`J*BHJ"B$@+R\@("A# M*2!#;W!Y<FEG:'0@2F]H;B!-861D;V-K(#(P,#`N#0HA("\O("!5<V4L(&UO M9&EF:6-A=&EO;B!A;F0@9&ES=')I8G5T:6]N(&%R92!S=6)J96-T('1O('1H M92`-"B$@+R\@($)O;W-T(%-O9G1W87)E($QI8V5N<V4L(%9E<G-I;VX@,2XP M+B`H4V5E(&%C8V]M<&%N>6EN9R!F:6QE(`T*(2`O+R`@3$E#14Y315\Q7S`N M='AT(&]R(&-O<'D@870@:'1T<#HO+W=W=RYB;V]S="YO<F<O3$E#14Y315\Q M7S`N='AT*0T*(2`-"B`@+R\@(%-E92!H='1P.B\O=W=W+F)O;W-T+F]R9R]L M:6)S+W-T871I8U]A<W-E<G0@9F]R(&1O8W5M96YT871I;VXN#0H@(`T*("`O M*@T*+2TM(#$L."`M+2TM"B$@+R\@("`@("`@("`@("`H0RD@0V]P>7)I9VAT M($IO:&X@36%D9&]C:R`R,#`P+@T*(2`O+R!$:7-T<FEB=71E9"!U;F1E<B!T M:&4@0F]O<W0@4V]F='=A<F4@3&EC96YS92P@5F5R<VEO;B`Q+C`N#0HA("\O M("`@("A3964@86-C;VUP86YY:6YG(&9I;&4@3$E#14Y315\Q7S`N='AT(&]R M(&-O<'D@870-"B$@+R\@("`@("`@("`@:'1T<#HO+W=W=RYB;V]S="YO<F<O M3$E#14Y315\Q7S`N='AT*0T*(2`O+PT*("`O+R`@4V5E(&AT='`Z+R]W=W<N M8F]O<W0N;W)G+VQI8G,O<W1A=&EC7V%S<V5R="!F;W(@9&]C=6UE;G1A=&EO M;BX-"B`@#0H@("\J#0HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ(#$W+#(W("HJ*BH* M("`C:6YC;'5D92`\8F]O<W0O8V]N9FEG+FAP<#X-"B`@(VEN8VQU9&4@/&)O M;W-T+V1E=&%I;"]W;W)K87)O=6YD+FAP<#X-"B`@#0HA("-I9F1E9B!?7T)/ M4DQ!3D1#7U\-"B$@+R\-"B$@+R\@=V]R:V%R;W5N9"!F;W(@8G5G9WD@:6YT M96=R86PM8V]N<W1A;G0@97AP<F5S<VEO;B!S=7!P;W)T.@T*(2`C9&5F:6YE M($)/3U-47T)51T=97TE.5$5'4D%,7T-/3E-404Y47T584%)%4U-)3TY3#0HA M("-E;F1I9@T*("`-"B`@;F%M97-P86-E(&)O;W-T>PT*("`-"BTM+2`Q-RPR M,R`M+2TM"B`@(VEN8VQU9&4@/&)O;W-T+V-O;F9I9RYH<'`^#0H@("-I;F-L M=61E(#QB;V]S="]D971A:6PO=V]R:V%R;W5N9"YH<'`^#0H@(`T*(2`-"B`@ M#0H@(&YA;65S<&%C92!B;V]S='L-"B`@#0HJ*BHJ*BHJ*BHJ*BHJ*BH**BHJ M(#4W+#8T("HJ*BH*("`O+R!S='EL92!C87-T<SH@=&]O(&UA;GD@8V]M<&EL M97)S(&-U<G)E;G1L>2!H879E('!R;V)L96US('=I=&@@<W1A=&EC7V-A<W0- M"B`@+R\@=VAE;B!U<V5D(&EN<VED92!I;G1E9W)A;"!C;VYS=&%N="!E>'!R M97-S:6]N<RX-"B`@+R\-"B$@(VEF("%D969I;F5D*$)/3U-47T)51T=97TE. M5$5'4D%,7T-/3E-404Y47T584%)%4U-)3TY3*2`F)B!<#0HA("`@("`A0D]/ M4U1?5T]22T%23U5.1"A?7TU715)+4U]?+"`\(#!X,S`P,RD-"B`@#0H@("-I M9B!D969I;F5D*$)/3U-47TU35D,I("8F("A"3T]35%]-4U9#(#P@,3,P,"D- M"B`@+R\@7U],24Y%7U\@;6%C<F\@8G)O:V5N('=H96X@+5I)(&ES('5S960@ M<V5E(%$Q.3DP-3<-"BTM+2`U,RPU.2`M+2TM"B`@+R\@<W1Y;&4@8V%S=',Z M('1O;R!M86YY(&-O;7!I;&5R<R!C=7)R96YT;'D@:&%V92!P<F]B;&5M<R!W M:71H('-T871I8U]C87-T#0H@("\O('=H96X@=7-E9"!I;G-I9&4@:6YT96=R M86P@8V]N<W1A;G0@97AP<F5S<VEO;G,N#0H@("\O#0HA(`T*("`-"B`@(VEF M(&1E9FEN960H0D]/4U1?35-60RD@)B8@*$)/3U-47TU35D,@/"`Q,S`P*0T* M("`O+R!?7TQ)3D5?7R!M86-R;R!B<F]K96X@=VAE;B`M6DD@:7,@=7-E9"!S M964@43$Y.3`U-PT**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ*B`V."PW.2`J*BHJ"B`@ M("`@("`@<VEZ96]F*#HZ8F]O<W0Z.E-4051)0U]!4U-%4E1)3TY?1D%)3%52 M13P@*&)O;VPI*"!"("D@/BE<#0H@("`@("`@(#X@8F]O<W1?<W1A=&EC7V%S M<V5R=%]T>7!E9&5F7PT*("`C96QI9B!D969I;F5D*$)/3U-47TU35D,I#0H@ M("-D969I;F4@0D]/4U1?4U1!5$E#7T%34T525"@@0B`I(%P-"B`@("`@='EP M961E9B`Z.F)O;W-T.CIS=&%T:6-?87-S97)T7W1E<W0\7`T*("`@("`@("!S M:7IE;V8H.CIB;V]S=#HZ4U1!5$E#7T%34T525$E/3E]&04E,55)%/"`H8F]O M;"DH($(@*2`^*3Y<#0H@("`@("`@("`@($)/3U-47TI/24XH8F]O<W1?<W1A M=&EC7V%S<V5R=%]T>7!E9&5F7RP@7U]#3U5.5$527U\I#0H@("-E;&EF(&1E M9FEN960H0D]/4U1?24Y414Q?0UA87U9%4E-)3TXI#0HA("\O(&%G=7)T(#$U M+W-E<"\P,CH@82!S<&5C:6%L(&-A<F4@:7,@;F5E9&5D('1O(&9O<F-E($EN M=&5L($,K*R!I<W-U92!A;B!E<G)O<B`-"B`@+R\@:6YS=&5A9"!O9B!W87)N M:6YG(&EN(&-A<V4@;V8@9F%I;'5R90T*("`C(&1E9FEN92!"3T]35%]35$%4 M24-?05-315)4*"!"("D@7`T*("`@("`@='EP961E9B!C:&%R($)/3U-47TI/ M24XH8F]O<W1?<W1A=&EC7V%S<V5R=%]T>7!E9&5F7RP@7U],24Y%7U\I(%P- M"BTM+2`V,RPW-2`M+2TM"B`@("`@("`@<VEZ96]F*#HZ8F]O<W0Z.E-4051) M0U]!4U-%4E1)3TY?1D%)3%5213P@*&)O;VPI*"!"("D@/BE<#0H@("`@("`@ M(#X@8F]O<W1?<W1A=&EC7V%S<V5R=%]T>7!E9&5F7PT*("`C96QI9B!D969I M;F5D*$)/3U-47TU35D,I#0HK("\O(%9#*RL@-RXP(&%N9"!A8F]V90T*("`C M9&5F:6YE($)/3U-47U-4051)0U]!4U-%4E0H($(@*2!<#0H@("`@('1Y<&5D M968@.CIB;V]S=#HZ<W1A=&EC7V%S<V5R=%]T97-T/%P-"B`@("`@("`@<VEZ M96]F*#HZ8F]O<W0Z.E-4051)0U]!4U-%4E1)3TY?1D%)3%5213P@*&)O;VPI M*"!"("D@/BD^7`T*("`@("`@("`@("!"3T]35%]*3TE.*&)O;W-T7W-T871I M8U]A<W-E<G1?='EP961E9E\L(%]?0T]53E1%4E]?*0T*("`C96QI9B!D969I M;F5D*$)/3U-47TE.5$5,7T-86%]615)324].*0T*(2`O+R!A9W5R="`Q-2]S M97`O,#(Z(&$@<W!E8VEA;"!C87)E(&ES(&YE961E9"!T;R!F;W)C92!);G1E M;"!#*RL@:7-S=64@86X@97)R;W(-"B`@+R\@:6YS=&5A9"!O9B!W87)N:6YG M(&EN(&-A<V4@;V8@9F%I;'5R90T*("`C(&1E9FEN92!"3T]35%]35$%424-? M05-315)4*"!"("D@7`T*("`@("`@='EP961E9B!C:&%R($)/3U-47TI/24XH M8F]O<W1?<W1A=&EC7V%S<V5R=%]T>7!E9&5F7RP@7U],24Y%7U\I(%P-"BHJ M*BHJ*BHJ*BHJ*BHJ*@HJ*BH@.#<L.3(@*BHJ*@HM+2T@.#,L.38@+2TM+0H@ M("`@("`@<VEZ96]F*#HZ8F]O<W0Z.E-4051)0U]!4U-%4E1)3TY?1D%)3%52 M13P@7`T*("`@("`@("`@0D]/4U1?2D])3BAB;V]S=%]S=&%T:6-?87-S97)T M7W1E<W1?+"!?7TQ)3D5?7RD@/BD^7`T*("`@("`@("`@("!"3T]35%]*3TE. M*&)O;W-T7W-T871I8U]A<W-E<G1?='EP961E9E\L(%]?3$E.15]?*0T**R`- M"BL@(V5L:68@9&5F:6YE9"A?7TU715)+4U]?*2`F)B`H7U]-5T522U-?7R`\ M(#!X,S`P,RD@("`@("`@("`@("`@("`@(%P-"BL@("`@("`@('Q\("AD969I M;F5D("A?7T)/4DQ!3D1#7U\I("8F("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@(%P-"BL@("`@("`@("`@("`@0D]/4U1?5T]22T%23U5.1"A?7T)/ M4DQ!3D1#7U\L($)/3U-47U1%4U1%1%]!5"@P>#4V-"DI*0T**R`O+R!A;'1E M<FYA=&EV92!E;G5M(&)A<V5D(&EM<&QE;65N=&%T:6]N(&9O<B!";W)L86YD M(&%N9"!O;&0@35<-"BL@(V1E9FEN92!"3T]35%]35$%424-?05-315)4*"!" M("D@7`T**R`@("!E;G5M('L@0D]/4U1?2D])3BAB;V]S=%]S=&%T:6-?87-S M97)T7V5N=6U?+"!?7TQ)3D5?7RD@7`T**R`@("`@("`]('-I>F5O9B@Z.F)O M;W-T.CI35$%424-?05-315)424].7T9!24Q54D4\("AB;V]L*2@@0B`I(#XI M('T-"B`@(V5L<V4-"B`@+R\@9V5N97)I8R!V97)S:6]N#0H@("-D969I;F4@ M0D]/4U1?4U1!5$E#7T%34T525"@@0B`I(%P-"BHJ*BHJ*BHJ*BHJ*BHJ*@HJ M*BH@.34L,3`V("HJ*BH*("`@("`@("`@("!"3T]35%]*3TE.*&)O;W-T7W-T M871I8U]A<W-E<G1?='EP961E9E\L(%]?3$E.15]?*0T*("`C96YD:68-"B`@ M#0HM("-E;'-E#0HM("\O(&%L=&5R;F%T:79E(&5N=6T@8F%S960@:6UP;&5M M96YT871I;VXZ#0HM("-D969I;F4@0D]/4U1?4U1!5$E#7T%34T525"@@0B`I M(%P-"BT@("`@96YU;2![($)/3U-47TI/24XH8F]O<W1?<W1A=&EC7V%S<V5R M=%]E;G5M7RP@7U],24Y%7U\I(%P-"BT@("`@("`@/2!S:7IE;V8H.CIB;V]S M=#HZ4U1!5$E#7T%34T525$E/3E]&04E,55)%/"`H8F]O;"DH($(@*2`^*2!] M#0HM("-E;F1I9@T*("`-"B`@#0H@("-E;F1I9B`O+R!"3T]35%]35$%424-? <05-315)47TA04`T*+2TM(#DY+#$P-"`M+2TM"B`O ` end

Gennaro Prota wrote:
Looking further at the header, I noticed that BOOST_WORKAROUND is only used for __MWERKS__. Why? I guess it only makes sense to use it for Borland, actually, because that would allow to detect when the workaround will be outdated. If you agree with that, attached is a different patch.
+ #elif defined(__MWERKS__) && (__MWERKS__ < 0x3003) \ + || (defined (__BORLANDC__) && \ + BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))) This should really be: #elif BOOST_WORKAROUND(__MWERKS__, < 0x3003) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) And, didnt't we settle for using BOOST_MY_COMPILER instead of checking __MY_COMPILER__ directly? We could try and follow this convention at least for new code we add.
Secondly, is it ok that 'STATIC_ASSERTION_FAILURE' is all-uppercase but not prefixed by 'BOOST_'?
Isn't that a class? Then it doesn't matter. BTW, "agurt" is the (nick)name of whoever added that comment line. cvs annotate is your friend if you can't unmangle it. -- Giovanni Bajo

On Sun, 21 Mar 2004 03:06:29 +0100, "Giovanni Bajo" <giovannibajo@libero.it> wrote:
Gennaro Prota wrote:
+ #elif defined(__MWERKS__) && (__MWERKS__ < 0x3003) \ + || (defined (__BORLANDC__) && \ + BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)))
This should really be:
#elif BOOST_WORKAROUND(__MWERKS__, < 0x3003) \ || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
Yes, it's just that the latter triggers gcc's -Wundef. I don't have a strong opinion here, but there seems to be agreement that gcc users should be allowed to use that switch. If you are wondering why BOOST_WORKAROUND isn't itself defined in terms of the defined operator: http://lists.boost.org/MailArchives/boost/msg40249.php
And, didnt't we settle for using BOOST_MY_COMPILER instead of checking __MY_COMPILER__ directly?
Well, yes, we could wait for the config system to be updated, before changing static_assert.hpp.
We could try and follow this convention at least for new code we add.
Agreed.
Secondly, is it ok that 'STATIC_ASSERTION_FAILURE' is all-uppercase but not prefixed by 'BOOST_'?
Isn't that a class? Then it doesn't matter.
<paranoid> But it can conflict with user defined macros. </paranoid>
BTW, "agurt" is the (nick)name of whoever added that comment line. cvs annotate is your friend if you can't unmangle it.
Aah! How could I miss that. Sorry, Aleksey! -- Genny.
participants (2)
-
Gennaro Prota
-
Giovanni Bajo