RE: [boost] The Test Tools Docs, Concept Checking

I could add proposed text, once somebody prepared it. Gennadiy.
Hi,
I have been reading the Test Tools docs. Would it be a good idea to add ConceptChecking to the list of alternative methods of reporting errors, in /test/doc/index.html#introduction ? A recent post on boost alluded to the fact that Concepts (ie What is a concept? ) can be difficult to understand. Well ... ConceptChecks are the medium for pinning down Concepts in C++ code and are probably the most effective means of error reporting at compile time, but are not used as much as they could be. The Boost Test Library would seem to be as good a place as any to promote them, which could help to remove some of the mystery.
regards Andy Little

"Rozental, Gennadiy" <gennadiy.rozental@thomson.com> wrote
I could add proposed text, once somebody prepared it.
OK... update attached (modified from current release version). Meanwhile I have done an example of the simplest possible concepts true and false. I guess its half way between STATIC_ASSERT and assert(); and may be useable in situations where STATIC_ASSERT or even assert() is currently used. Whatever.. I like concepts :-) so I hope this helps to demystify them a bit. Like many good things I guess you never notice youre using them until it all goes wrong! http://www.servocomm.freeserve.co.uk/Cpp/physical_quantity/concept_checking.... BTW boost test has nice docs! regards Andy Little begin 666 index.html M/$A434P^#0H\2$5!1#X-"CQ4251,13Y4:&4@5&5S="!4;V]L<SPO5$E43$4^ M#0H\3$E.2R!R96P](G-T>6QE<VAE970B('1Y<&4](G1E>'0O8W-S(B!H<F5F M/2(N+B\N+B]S='EL92]B=&PN8W-S(B!M961I83TB<V-R965N(CX-"CQ,24Y+ M(')E;#TB<W1Y;&5S:&5E="(@='EP93TB=&5X="]C<W,B(&AR968](BXN+RXN M+W-T>6QE+V)T;"UP<FEN="YC<W,B(&UE9&EA/2)P<FEN="(^#0H\345402!H M='1P+65Q=6EV/2)#;VYT96YT+4QA;F=U86=E(B!C;VYT96YT/2)E;BUU<R(^ M#0H\345402!H='1P+65Q=6EV/2)#;VYT96YT+51Y<&4B(&-O;G1E;G0](G1E M>'0O:'1M;#L@8VAA<G-E=#UI<V\M.#@U.2TQ(CX-"CPO2$5!1#X-"CQ"3T19 M/@T*/$1)5B!C;&%S<STB:&5A9&5R(CX@/$$@:')E9CTB+BXO+BXO:6YD97@N M:'1M;"(^0F]O<W0N5&5S=#PO03X@/B \02!H<F5F/2(N+B]I;F1E>"YH=&UL M(CY#;VUP;VYE;G1S/"]!/B -"B @/B \4U!!3B!C;&%S<STB8W5R<F5N=%]A M<G1I8VQE(CY4:&4@5&5S="!4;V]L<SPO4U!!3CX@/"]$258^#0H\1$E6(&-L M87-S/2)B;V1Y(CX@/$E-1R!S<F,])RXN+RXN+V)T;#$N9VEF)R!W:61T:#TG M,C4R)R!H96EG:'0])S0S)R!A;'0](D)O;W-T(%1E<W0@;&]G;R(^( T*(" \ M2#$^0F]O<W0@5&5S="!,:6)R87)Y.B!4:&4@5&5S="!4;V]L<SPO2#$^#0H@ M(#Q0(&-L87-S/2)P86=E+71O8R(^(#Q!(&AR968](B-);G1R;V1U8W1I;VXB M/DEN=')O9'5C=&EO;CPO03X\0E(^#0H@(" @/$$@:')E9CTB<F5F97)E;F-E M+VEN9&5X+FAT;6PB/E)E9F5R96YC93PO03X\0E(^#0H@(" @/$$@:')E9CTB M(TEM<&QE;65N=&%T:6]N(CY);7!L96UE;G1A=&EO;CPO03X\0E(^#0H@(" @ M/$$@:')E9CTB(T5X86UP;&5S(CY%>&%M<&QE<R!A;F0@=&5S=',\+T$^/$)2 M/@T*(" \+U ^#0H@(#Q(,CX\02!N86UE/2));G1R;V1U8W1I;VXB/DEN=')O M9'5C=&EO;CPO03X\+T@R/@T*(" \4"!C;&%S<STB9FER<W0M;&EN92UI;F1E M;G1E9"(^($)O;W-T(%1E<W0@3&EB<F%R>2=S(%1E<W0@5&]O;',@<W5P<&QY M(&$@=&]O;&)O>"!T;R!E87-E(&$@8W)E871I;VX@#0H@(" @86YD(&$@;6%I M;G1E;F%N8V4@;V8@=&5S="!P<F]G<F%M<R!A;F0@<')O=FED92!A('5N:69O M<FT@97)R;W(@<F5P;W)T:6YG(&UE8VAA;FES;2X@5&AE('1O;VQB;W@@<W5P M<&QI960@#0H@(" @:6X@82!F;W)M(&]F(&UA8W)O(&%N9"!F=6YC=&EO;B!D M96-L87)A=&EO;G,N(%=H:6QE('1H92!F=6YC=&EO;G,@8V%N(&)E(&-A;&QE M9"!D:7)E8W1L>2P@=&AE('5S=6%L( T*(" @('=A>2!T;R!U<V4@5&5S="!4 M;V]L<R!I<R!V:6$@8V]N=F5N:65N8V4@;6%C<F]S+B!!;&P@;6%C<F]S(&%R M9W5M96YT<R!A<F4@8V%L8W5L871E9"!O;F-E+"!S;R!I="=S( T*(" @('-A M9F4@=&\@<&%S<R!C;VUP;&5X(&5X<')E<W-I;VYS(&EN('1H96ER('!L86-E M+B!!;&P@;6%C<F]S('!R;W9I9&4@86X@97)R;W(@;&]C871I;VXZ(&$@9FEL M92!N86UE( T*(" @(&%N9"!A(&QI;F4@;G5M8F5R+B!";V]S="!497-T($QI M8G)A<GDG<R!497-T(%1O;VQS(&%R92!I;G1E;F1E9"!F;W(@=&5S="!C;V1E M(')A=&AE<B!T:&%N(&QI8G)A<GD@#0H@(" @;W(@<')O9'5C=&EO;B!C;V1E M+"!W:&5R92!T:')O=VEN9R!E>&-E<'1I;VYS+"!U<VEN9R!A<W-E<G0H*2P@ M8F]O<W0Z.F-O;F-E<'1?8VAE8VL@;W(@0D]/4U1?4U1!5$E#7T%34T525"@I M(&UA>2!B92!M;W)E( T*(" @('-U:71A8FQE('=A>7,@=&\@9&5T96-T(&%N M9"!R97!O<G0@97)R;W)S+B!4;R!U<V4@=&AE(%1E<W0@5&]O;',@>6]U(&YE M960@=&\@;&EN:R!W:71H(&5I=&AE<B!T:&4@#0H@(" @/$$@:')E9CTB+BXO M=&5S=%]E>&5C7VUO;FET;W(O:6YD97@N:'1M;"(^5&5S="!%>&5C=71I;VX@ M36]N:71O<CPO03X@;W(@=&AE(#Q!(&AR968](BXN+W5N:71?=&5S=%]F<F%M M97=O<FLO:6YD97@N:'1M;"(^56YI=" -"B @("!497-T($9R86UE=V]R:SPO M03XN($9O<B!L:7-T(&]F(&%L;"!S=7!P;&EE9"!497-T(%1O;VQS(&%N9"!U M<V%G92!E>&%M<&QE<R!S964@=&AE(#Q!(&AR968](G)E9F5R96YC92]I;F1E M>"YH=&UL(CYR969E<F5N8V4\+T$^+CPO4#X-"B @/% @8VQA<W,](F9I<G-T M+6QI;F4M:6YD96YT960B/D%M;VYG(&UA;GD@=&]O;',@:6X@<W5P<&QI960@ M=&]O;&)O>"P@=&AE<F4@:7,@=&AE($)/3U-47T-(14-+7T-,3U-%( T*(" @ M('1O;VP@=&AA="!P97)F;W)M(&9L;V%T:6YG('!O:6YT(&-O;7!A<FES;VX@ M;V8@=F%L=65S+B!3964@/$$@:')E9CTB9FQO871I;F=?<&]I;G1?8V]M<&%R M:7-O;BYH=&UL(CYF;&]A=&EN9R -"B @("!P;VEN="!C;VUP87)I<V]N/"]! M/B!P86=E(&9O<B!D971A:6QE9"!D97-C<FEP=&EO;B!O9B!U<V5D(&%L9V]R M:71H;7,N/"]0/@T*(" \4"!C;&%S<STB9FER<W0M;&EN92UI;F1E;G1E9"(^ M26X@861D:71I;VX@=&\@=&]O;&)O>"P@=&AE(%1E<W0@5&]O;',@86QS;R!C M;VYT86EN<R!S97!A<F%T92!O<W1R96%M7W1E<W1?<W1R96%M( T*(" @('1O M;VPN(%1H:7,@:7,@8VQA<W,@9&5S:6=N960@=&\@<VEG;FEF:6-A;G1L>2!S M:6UP;&EF>2!C;W)R96-T;F5S<R!T97-T:6YG(&]F('1H92!O<W1R96%M(&)A M<V5D(&]U='!U=" -"B @("!P<F]C961U<F5S+B!&;W(@9&5T86EL960@9&5S M8W)I<'1I;VX@;V8@:70G<R!I;G1E<F9A8V4@86YD('5S86=E('-E92!T:&4@ M/$$@:')E9CTB;W5T<'5T7W1E<W1?<W1R96%M+FAT;6PB/F]S=')E86U?=&5S M=%]S=')E86T\+T$^( T*(" @('!A9V4N/"]0/@T*(" \4"!C;&%S<STB9FER M<W0M;&EN92UI;F1E;G1E9"(^36]S="!O9B!T97-T('1O;VQS(&1I<F5C="!V M86QU97,@;V8@:70G<R!A<F=U;65N=',@=&\@=&AE(&]U='!U="!S=')E86T@ M:6X@<V]M92!F;W)M(&]F(&QO9R!S=&%T96UE;G0N($EF(&%R9W5M96YT<R!T M>7!E(&1O97,@;F]T('-U<'!O<G0@;W!E<F%T;W(F;'0[)FQT.R@N+BXI(&EN M=&5R9F%C92!Y;W4@=VEL;"!G970@82!C;VUP:6QA=&EO;B!E<G)O<BX@66]U M(&-O=6QD(&5I=&AE<B!I;7!L96UE;G0@86)O=F4@:6YT97)F86-E(&]R('!R M;VAI8FET(%1E<W0@=&]O;',@9G)O;2!L;V=G:6YG(&%R9W5M96YT('9A;'5E M<R!F;W(@<W!E8VEF:65D('1Y<&4N(%1O(&1O('-O('5S92!F;VQL;W=I;F<@ M<W1A=&5M96YT(&]N(&9I;&4@;&5V96P@8F5F;W)E(&9I<G-T('1E<W0@8V%S M92!I;F-L=61I;F<@<W1A=&5M96YT<R!F86EL:6YG('1O(&-O;7!L>3H\+U ^ M#0H@(#Q0(&-L87-S/2)F:7)S="UL:6YE+6EN9&5N=&5D(CX\4U!!3B!C;&%S M<STB;F5W+71E<FTB/D)/3U-47U1%4U1?1$].5%]04DE.5%],3T=?5D%,544\ M+W-P86X^*"!!<F=U;65N=%1Y<&4@*2X\+U ^#0H@(#Q0(&-L87-S/2)F:7)S M="UL:6YE+6EN9&5N=&5D(CY%=F5N('1H;W5G:"!S=7!P;&EE9"!T97-T('1O M;VQS(&-O=F5R('=I9&4@<F%N9V4@;V8@<&]S<VEB;&4@8VAE8VMS(&%N9"!P M<F]V:61E(&1E=&%I;&5D(')E<&]R="!O;B!C875S92!O9B!E<G)O<B!I;B!S M;VUE(&-A<V5S('EO=2!M87D@=V%N="!T;R!I;7!L96UE;G0@86YD('5S92!C M=7-T;VT@<')E9&EC871E('1H870@<&5R9F]R;2!C;VUP;&5X(&-H96-K(&%N M9"!P<F]D=6-E(&EN=&5L;&EG96YT(')E<&]R="!O;B!F86EL=7)E+B!4;R!S M871I<V9Y('1H:7,@;F5E9"!T97-T('1O;VQS(&EM<&QE;65N=',@/&$@:')E M9CTB8W5S=&]M7W!R961I8V%T95]S=7!P;W)T+FAT;6PB/F-U<W1O;2!P<F5D M:6-A=&4@<W5P<&]R=#PO83XN/"]0/@T*(" \2#(^/$$@;F%M93TB26UP;&5M M96YT871I;VXB/DEM<&QE;65N=&%T:6]N/"]!/CPO2#(^#0H@(#Q0(&-L87-S M/2)F:7)S="UL:6YE+6EN9&5N=&5D(CY4:&4@5&5S="!4;V]L<R!A<F4@:6UP M;&5M96YT960@:6X@=&AR964@;6]D=6QE<SH@='=O(&AE861E<B!F:6QE<R!A M;F0@#0H@(" @;VYE('-O=7)C92!F:6QE+B \+U ^#0H@(#Q(-#X\02!H<F5F M/2(N+B\N+B\N+B\N+B\N+B]B;V]S="]T97-T+W1E<W1?=&]O;',N:'!P(CYB M;V]S="]T97-T+W1E<W1?=&]O;',N:'!P/"]!/CH\+T@T/@T*(" \4"!C;&%S M<STB9FER<W0M;&EN92UI;F1E;G1E9"(^8V]N=&%I;G,@9&5F:6YI=&EO;B!F M;W(@=&AE(&-O;G9E;FEE;F-E(&UA8W)O<RP@<V]M92!T96UP;&%T92!B87-E M9"!497-T( T*(" @(%1O;VQS(&EM<&QE;65N=&%T:6]N(&9U;F-T:6]N<R!A M;F0@8VQA<W,@;W-T<F5A;5]T97-T7W-T<F5A;2X\+U ^#0H@(#Q(-#X\02!H M<F5F/2(N+B\N+B\N+B\N+B\N+B]B;V]S="]T97-T+V9L;V%T:6YG7W!O:6YT M7V-O;7!A<FES;VXN:'!P(CY";V]S="]T97-T+V9L;V%T:6YG7W!O:6YT7V-O M;7!A<FES;VXN:'!P/"]!/CH\+T@T/@T*(" \4"!C;&%S<STB9FER<W0M;&EN M92UI;F1E;G1E9"(^8V]N=&%I;G,@:6UP;&5M96YT871I;VX@9F]R('1H92!F M;&]A=&EN9R!P;VEN="!C;VUP87)I<V]N(&%L9V]R:71H;7,L( T*(" @('5S M960@8GD@0D]/4U1?0TA%0TM?0TQ/4T4@=&]O;"X@5&AE>2!A;'-O(&-O=6QD M(&)E('5S960@9&ER96-T;'DN/"]0/@T*(" \2#0^/$$@:')E9CTB+BXO+BXO M+BXO<W)C+W1E<W1?=&]O;',N8W!P(CYL:6)S+W1E<W0O=&5S=%]T;V]L<RYC M<' \+T$^.CPO2#0^#0H@(#Q0(&-L87-S/2)F:7)S="UL:6YE+6EN9&5N=&5D M(CYC;VYT86EN<R!D969I;FET:6]N(&9O<B!T:&4@;6]S="!497-T(%1O;VQS M(&EM<&QE;65N=&%T:6]N(&9U;F-T:6]N<R -"B @("!A;F0@8VQA<W,@;W-T M<F5A;5]T97-T7W-T<F5A;2!I;7!L96UE;G1A=&EO;BX\+U ^#0H@(#Q0(&-L M87-S/2)F:7)S="UL:6YE+6EN9&5N=&5D(CY3:6YC92!T:&ES(&-O;7!O;F5N M="!I<R!N;W0@:6YT96YD960@=&\@8F4@=7-E9"!S=&%N9&%L;VYE+"!T:&5R M92!A<F4@#0H@(" @;F\@<W!E8VEA;"!C;VUP:6QA=&EO;B!I;G-T<G5C=&EO M;B!F;W(@:70N/"]0/@T*(" \2#(^/$$@;F%M93TB17AA;7!L97,B/D5X86UP M;&5S(&%N9"!497-T<SPO03X\+T@R/@T*(" \4"!C;&%S<STB:6YD96YT960B M/CQ!(&AR968](BXN+RXN+V5X86UP;&5S+W1E<W1?97AE8U]M;VYI=&]R7V5X M86UP;&4N:'1M;"(^=&5S=%]E>&5C7V5X86UP;&4\+T$^/$)2/@T*(" @(#Q! M(&AR968](BXN+RXN+W1E<W1S+W1E<W1?97AE8U]F86EL,BYH=&UL(CYT97-T M7V5X96-?9F%I;#(\+T$^/$)2/@T*(" @(#Q!(&AR968](BXN+RXN+W1E<W1S M+W1E<W1?97AE8U]F86EL,RYH=&UL(CYT97-T7V5X96-?9F%I;#,\+T$^/$)2 M/@T*(" @(#Q!(&AR968](BXN+RXN+W1E<W1S+W1E<W1?=&]O;'-?=&5S="YH M=&UL(CYT97-T7W1O;VQS7W1E<W0\+T$^/$)2/@T*(" @(#Q!(&AR968](BXN M+RXN+W1E<W1S+W1E<W1?9G!?8V]M<&%R:7-O;G,N:'1M;"(^=&5S=%]F<%]C M;VUP87)I<V]N<SPO03X@/"]0/@T*/"]$258^#0H\1$E6(&-L87-S/2)F;V]T M97(B/B -"B @/$1)5B!C;&%S<STB9F]O=&5R+6)O9'DB/B -"B @(" \4#X@ M)F-O<'D@/$$@;F%M93TB0V]P>7)I9VAT(CY#;W!Y<FEG:'0\+T$^(#Q!(&AR M968])VUA:6QT;SIR;V=E969F0&9U<V5M86EL+F-O;2<^1V5N;F%D:7D@4F]Z M96YT86P\+T$^(#(P,#$M,C P-"X@/$)2/@T*(" @(" @57-E+"!M;V1I9FEC M871I;VXL(&%N9"!D:7-T<FEB=71I;VX@87)E('-U8FIE8W0@=&\@=&AE($)O M;W-T(%-O9G1W87)E($QI8V5N<V4L(%9E<G-I;VX@,2XP+B -"B @(" @("A3 M964@86-C;VUP86YY:6YG(&9I;&4@/$$@:')E9CTB+BXO+BXO+BXO+BXO+BXO M3$E#14Y315\Q7S N='AT(CY,24-%3E-%7S%?,"YT>'0\+T$^(&]R(&-O<'D@ M870@#0H@(" @(" \02!H<F5F/2)H='1P.B\O=W=W+F)O;W-T+F]R9R],24-% M3E-%7S%?,"YT>'0B/G=W=RYB;V]S="YO<F<O3$E#14Y315\Q7S N='AT/"]! M/BD\+U ^#0H@(" @(" @(#Q0/E)E=FES960Z(" @(" @(" \(2TM("-"96=I M;D1A=&4@9F]R;6%T.E-W,2 M+3XQ."!*86YU87)Y+" R,# T/"$M+2 C16YD M1&%T92 M+3X@(" @(#PO4#X-"B @/"]$258^#0H\+T1)5CX-"CPO0D]$63X- *"CPO2%1-3#X-"@`` ` end

OK... update attached (modified from current release version).
Ok. will try to incorporate in a release.
BTW boost test has nice docs!
Pleased to hear (for a change).
regards Andy Little
Gennadiy. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (3)
-
Andy Little
-
Gennadiy Rozental
-
Rozental, Gennadiy