
"Jonathan Turkanis" <technews@kangaroologic.com> wrote:
I believe the attached file does what Pavel has in mind. Let someone else check it, though, since I'm not preprocessor expert.
One last try ... the version I just posted had the include guards out of order. Jonathan begin 666 base_from_member.hpp M+R\@(&)O;W-T('5T:6QI='DO8F%S95]F<F]M7VUE;6)E<BYH<' @:&5A9&5R M(&9I;&4@("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+R\-"@T*+R\@($-O M<'ER:6=H=" R,# Q+" R,# S+" R,# T($1A<GEL92!786QK97(N("!5<V4L M(&UO9&EF:6-A=&EO;BP@86YD#0HO+R @9&ES=')I8G5T:6]N(&%R92!S=6)J M96-T('1O('1H92!";V]S="!3;V9T=V%R92!,:6-E;G-E+"!697)S:6]N(#$N M,"X@("A3964-"B\O("!A8V-O;7!A;GEI;F<@9FEL92!,24-%3E-%7S%?,"YT M>'0@;W(@82!C;W!Y(&%T#0HO+R @/&AT=' Z+R]W=W<N8F]O<W0N;W)G+TQ) M0T5.4T5?,5\P+G1X=#XN*0T*#0HO+R @4V5E(#QH='1P.B\O=W=W+F)O;W-T M+F]R9R]L:6)S+W5T:6QI='DO/B!F;W(@=&AE(&QI8G)A<GDG<R!H;VUE('!A M9V4N#0H-"B-I9FYD968@0D]/4U1?551)3$E465]"05-%7T923TU?345-0D52 M7TA04" O+R!);F-L=61E(&=U87)D(&1E9FEN960@8F5L;W<-"B-I9B A0D]/ M4U1?4%!?25-?251%4D%424Y'#0H-"B-I;F-L=61E(#QB;V]S="]P<F5P<F]C M97-S;W(O87)I=&AM971I8R]I;F,N:'!P/@T*(VEN8VQU9&4@/&)O;W-T+W!R M97!R;V-E<W-O<B]R97!E=&ET:6]N+V5N=6U?8FEN87)Y7W!A<F%M<RYH<' ^ M#0HC:6YC;'5D92 \8F]O<W0O<')E<')O8V5S<V]R+W)E<&5T:71I;VXO96YU M;5]P87)A;7,N:'!P/@T*#0HO+R @0F%S92UF<F]M+6UE;6)E<B!A<FET>2!C M;VYF:6=U<F%T:6]N(&UA8W)O(" M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TO+PT*#0HO+R!4:&4@9F]L;&]W:6YG(&UA8W)O(&1E=&5R;6EN97,@ M:&]W(&UA;GD@87)G=6UE;G1S('=I;&P@8F4@:6X@=&AE(&QA<F=E<W0-"B\O M(&-O;G-T<G5C=&]R('1E;7!L871E(&]F(&)A<V5?9G)O;5]M96UB97(N("!# M;VYS=')U8W1O<B!T96UP;&%T97,@=VEL;"!B90T*+R\@9V5N97)A=&5D(&9R M;VT@;VYE(&%R9W5M96YT('1O('1H:7,@;6%X:6UU;2X@($-O9&4@9G)O;2!O M=&AE<B!F:6QE<R!C86X@<F5A9 T*+R\@=&AI<R!N=6UB97(@:68@=&AE>2!N M965D('1O(&%L=V%Y<R!M871C:"!T:&4@97AA8W0@;6%X:6UU;2!B87-E7V9R M;VU?;65M8F5R#0HO+R!U<V5S+B @5&AE(&UA>&EM=6T@8V]N<W1R=6-T;W(@ M;&5N9W1H(&-A;B!B92!C:&%N9V5D(&)Y(&]V97)R:61I;F<@=&AE#0HO+R C M9&5F:6YE9"!C;VYS=&%N="X@($UA:V4@<W5R92!T;R!A<'!L>2!T:&4@;W9E M<G)I9&4L(&EF(&%N>2P@9F]R(&%L;"!S;W5R8V4-"B\O(&9I;&5S(&1U<FEN M9R!P<F]J96-T(&-O;7!I;&EN9R!F;W(@8V]N<VES=&5N8WDN#0H-"B\O($-O M;G1R:6)U=&5D(&)Y($IO;F%T:&%N(%1U<FMA;FES#0H-"B-I9FYD968@0D]/ M4U1?0D%315]&4D]-7TU%34)%4E]-05A?05))5%D-"B-D969I;F4@0D]/4U1? M0D%315]&4D]-7TU%34)%4E]-05A?05))5%D@(#$P#0HC96YD:68-"@T*+R\@ M($%N(&ET97)A=&EO;B!O9B!A(&-O;G-T<G5C=&]R('1E;7!L871E(&9O<B!B M87-E7V9R;VU?;65M8F5R(" M+2TM+2TM+2TM+2TM+R\-"@T*+R\@02!M86-R M;R!T:&%T('-H;W5L9"!E>'!A;F0@=&\Z#0HO+R @(" @=&5M<&QA=&4@/"!T M>7!E;F%M92!4,2P@+BXN+"!T>7!E;F%M92!4;B ^#0HO+R @(" @8F%S95]F M<F]M7VUE;6)E<B@@5#$@>#$L("XN+BP@5&X@>&X@*0T*+R\@(" @(" @(" Z M(&UE;6)E<B@@>#$L("XN+BP@>&X@*0T*+R\@(" @(" @("![?0T*+R\@5&AI M<R!M86-R;R!S:&]U;&0@;VYL>2!P97)S:7-T('=I=&AI;B!T:&ES(&9I;&4N M#0H-"B-D969I;F4@0D]/4U1?4%))5D%415]#5%)?1$5&*"!N("D@(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @7 T*(" @('1E;7!L871E M(#P@0D]/4U1?4%!?14Y535]005)!35,H;BP@='EP96YA;64@5"D@/B @(" @ M(" @(" @(" @(" @("!<#0H)97AP;&EC:70@8F%S95]F<F]M7VUE;6)E<B@@ M0D]/4U1?4%!?14Y535]"24Y!4EE?4$%204U3*&XL(%0L('@I("D@(%P-"@D@ M(" @.B!M96UB97(H($)/3U-47U!07T5.54U?4$%204U3*&XL('@I("D@(" @ M(" @(" @(" @(" @(" @(" @(" @7 T*"0E[?2 @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @("!< M#0H)+RHJ+PT*#0IN86UE<W!A8V4@8F]O<W0-"GL-"@T*+R\@($)A<V4M9G)O M;2UM96UB97(@8VQA<W,@=&5M<&QA=&4@("TM+2TM+2TM+2TM+2TM+2TM+2TM M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+R\-"@T*+R\@2&5L<&5R('1O(&EN:71I M86QI>F4@82!B87-E(&]B:F5C="!S;R!A(&1E<FEV960@8VQA<W,@8V%N('5S M92!T:&ES#0HO+R!O8FIE8W0@:6X@=&AE(&EN:71I86QI>F%T:6]N(&]F(&%N M;W1H97(@8F%S92!C;&%S<RX@(%5S960@8GD-"B\O($1I971M87(@2W5E:&P@ M9G)O;2!I9&5A<R!B>2!2;VX@2VQA=&-H;R!T;R!S;VQV92!T:&4@<')O8FQE M;2!O9B!A#0HO+R!B87-E(&-L87-S(&YE961I;F<@=&\@8F4@:6YI=&EA;&EZ M960@8GD@82!M96UB97(N#0H-"B\O($-O;G1R:6)U=&5D(&)Y($1A<GEL92!7 M86QK97(-"@T*=&5M<&QA=&4@/"!T>7!E;F%M92!-96UB97)4>7!E+"!I;G0@ M56YI<75E240@/2 P(#X-"F-L87-S(&)A<V5?9G)O;5]M96UB97(-"GL-"G!R M;W1E8W1E9#H-"B @("!-96UB97)4>7!E("!M96UB97([#0H-"B @("!B87-E M7V9R;VU?;65M8F5R*"D-"B @(" @(" @.B!M96UB97(H*0T*(" @(" @("![ M?0T*#0HC:6YC;'5D92 \8F]O<W0O<')E<')O8V5S<V]R+VET97)A=&EO;B]I M=&5R871E+FAP<#X-"B-D969I;F4@0D]/4U1?4%!?1DE,14Y!345?,2 \8F]O M<W0O=71I;&ET>2]B87-E7V9R;VU?;65M8F5R+FAP<#X-"B-D969I;F4@0D]/ M4U1?4%!?251%4D%424].7TQ)34E44R H,"P@0D]/4U1?0D%315]&4D]-7TU% M34)%4E]-05A?05))5%DI#0HC:6YC;'5D92!"3T]35%]04%])5$52051%*"D- M"@T*?3L@+R\@8F]O<W0Z.F)A<V5?9G)O;5]M96UB97(-"@T*?2 @+R\@;F%M M97-P86-E(&)O;W-T#0H-"B\O(%5N9&\@86YY('!R:79A=&4@;6%C<F]S(&%N M9"!D969I;F4@:6YC;'5D92!G=6%R9 T*(W5N9&5F($)/3U-47U!2259!5$5? M0U127T1%1@T*(V1E9FEN92!"3T]35%]55$E,25197T)!4T5?1E)/35]-14U" M15)?2%!0#0H-"B-E;'-E("\O($)/3U-47U!07TE37TE415)!5$E.1PT*(" @ M($)/3U-47U!2259!5$5?0U127T1%1BA"3T]35%]04%])3D,H0D]/4U1?4%!? M251%4D%424].*"DI*0T*(V5N9&EF("\O($)/3U-47U!07TE37TE415)!5$E. M1PT*(V5N9&EF("\O($)/3U-47U5424Q)5%E?0D%315]&4D]-7TU%34)%4E]( $4% -"@`` ` end