
"Hubert Holin" <Hubert.Holin@meteo.fr> wrote in message news:Hubert.Holin-89E7B0.14253525102004@sea.gmane.org...
It is not immediately clear if [serialize] can do that in any way which is simpler to implement than what I already do for these classes (i.e. it would likely be as disgusting and unmaintainable, however necessary).
I don't think there is any factual support for that statement. As a counter example, The following code includes implementation of serialization for the quaternion class template (17 lines of code) and a test of its serialization. I only spent an hour on it ( most of which was perusing the quaternion docs and code so it might benefit from more effort and testing than I am in a position to invest. But I would hope that it does illustrate how easy it is to serialize what might seem to be an otherwise complex type. I would hope it also will help to refute the perception that the serialization library is "too big". I don't believe that serialization adds any more code (source and/or object) to an project than any comparable alternative method. For example, the i/o code built into the the quaternion class contains 329 lines of templated code. And, it doesn't include any facilities that come for free with serialization libary such as the ability to create archives of different types included XML, binary etc. It is also pure template code that doesn't factor out commonality into a separart module so I would expect to to be more "too big" than the equivalent of the serializaition library. Robert Ramey begin 666 test_quaternion.cpp M+R\O+R\O+R\O,2\O+R\O+R\O+S(O+R\O+R\O+R\S+R\O+R\O+R\O-"\O+R\O M+R\O+S4O+R\O+R\O+R\V+R\O+R\O+R\O-R\O+R\O+R\O+S@-"B\O('1E<W1? M<75A=&5R;FEO;BYC<' -"@T*+R\@*$,I($-O<'ER:6=H=" R,# R(%)O8F5R M="!286UE>2 M(&AT=' Z+R]W=W<N<G)S9"YC;VT@+B -"B\O(%5S92P@;6]D M:69I8V%T:6]N(&%N9"!D:7-T<FEB=71I;VX@:7,@<W5B:F5C="!T;R!T:&4@ M0F]O<W0@4V]F='=A<F4-"B\O($QI8V5N<V4L(%9E<G-I;VX@,2XP+B H4V5E M(&%C8V]M<&%N>6EN9R!F:6QE($Q)0T5.4T5?,5\P+G1X="!O<B!C;W!Y(&%T M#0HO+R!H='1P.B\O=W=W+F)O;W-T+F]R9R],24-%3E-%7S%?,"YT>'0I#0H- M"B\O(&EM<&QE;65N=&%T:6]N(&%N9"!T97-T(&]F('-E<FEA;&EZ871I;VX@ M9F]R('%U871E<FYI;VX@;&EB87)Y+@T*#0HC:6YC;'5D92 \9G-T<F5A;3X- M"@T*(VEN8VQU9&4@/&-S=&1I;SX@+R\@<F5M;W9E#0HC:6YC;'5D92 \8F]O M<W0O8V]N9FEG+FAP<#X-"B-I9B!D969I;F5D*$)/3U-47TY/7U-41$-?3D%- M15-004-%*0T*;F%M97-P86-E('-T9'L@#0H@(" @=7-I;F<@.CIR96UO=F4[ M#0I]#0HC96YD:68-"@T*(VEN8VQU9&4@/&)O;W-T+W-E<FEA;&EZ871I;VXO M;G9P+FAP<#X-"@T*+R\O+R\O+R\O,2\O+R\O+R\O+S(O+R\O+R\O+R\S+R\O M+R\O+R\O-"\O+R\O+R\O+S4O+R\O+R\O+R\V+R\O+R\O+R\O-R\O+R\O+R\O M+S@-"B\O('-T87)T(&]F(&EM<&QE;65N=&%T:6]N(&]F('-E<FEA;&EZ871I M;VX@;V8@<75A=&5R;FEO;B!L:6)R87)Y#0HO+R!N;W1E.B @:68@=&AI<R!W M97)E('!A<G0@;V8@=&AE('%U871E<FYI;VX@;&EB<F%R>2P@=&AI<R!W;W5L M9"!E>&ES="!A<PT*+R\@<V5P87)T('-O=7)C92!F:6QE("T@<75A=&5R;FEO M;B]S97)I86QI>F%T:6]N+FAP<"X-"@T*+R\@;F]T92!H86-K('1O(&=A:6X@ M86-C97-S('1O(&]T:&5R=VES92!I;F%C8V5S<V%B;&4@=F%R:6%B;&5S+@T* M+R\@=&AI<R!C;W5L9"!B92!R96UO=F5D('=H97)E('1H92!Q=6%T97)N97)I M;VX@;&EB<F%R>2!A9&IU<W1E9 T*+R\@=&\@86-C;VUO9&%T92!S97)I86QI M>F%T:6]N+@T*(V1E9FEN92!P<F]T96-T960@<'5B;&EC#0HC:6YC;'5D92 \ M8F]O<W0O;6%T:"]Q=6%T97)N:6]N+FAP<#X-"B-U;F1E9B!P<F]T96-T960- M"@T*+R\@9G5N8W1I;VX@<W!E8VEA;&EZ871I;VYS(&UU<W0@8F4@9&5F:6YE M9"!I;B!T:&4@87!P<F]P<FEA=&4-"B\O(&YA;65S<&%C92 M(&)O;W-T.CIS M97)I86QI>F%T:6]N#0IN86UE<W!A8V4@8F]O<W0@>R -"B-I9B!D969I;F5D M*$)/3U-47TY/7T%21U5-14Y47T1%4$5.1$5.5%],3T]+55 I#0IN86UE<W!A M8V4@<V5R:6%L:7IA=&EO;B![#0HC96QS90T*;F%M97-P86-E(&UA=&@@>PT* M(V5N9&EF#0H-"G1E;7!L871E(#QC;&%S<R!!<F-H:79E+"!T>7!E;F%M92!4 M/@T*=F]I9"!S97)I86QI>F4H#0H@(" @07)C:&EV92 F87(L( T*(" @(&)O M;W-T.CIM871H.CIQ=6%T97)N:6]N/%0^("8@="P@#0H@(" @8V]N<W0@=6YS M:6=N960@:6YT(&9I;&5?=F5R<VEO;@T**7L-"B @("!A<B F('0N83L-"B @ M("!A<B F('0N8CL-"B @("!A<B F('0N8SL-"B @("!A<B F('0N9#L-"GT- M"@T*(VEF("$@9&5F:6YE9"A"3T]35%].3U]!4D=5345.5%]$15!%3D1%3E1? M3$]/2U50*0T*?2 O+R!N86UE<W!A8V4@;6%T: T*(V5L<V4-"GT@+R\@;F%M M97-P86-E('-E<FEA;&EZ871I;VX-"B-E;F1I9@T*?2 O+R!N86UE<W!A8V4@ M8F]O<W0-"@T*+R\@96YD(&]F(&EM<&QE;65N=&%T:6]N('-E<FEA;&EZ871I M;VX@;V8@<75A=&5R;FEO;B!L:6)R87)Y#0HO+R\O+R\O+R\Q+R\O+R\O+R\O M,B\O+R\O+R\O+S,O+R\O+R\O+R\T+R\O+R\O+R\O-2\O+R\O+R\O+S8O+R\O M+R\O+R\W+R\O+R\O+R\O. T*#0HC:6YC;'5D92 B=&5S=%]T;V]L<RYH<' B M#0H-"FEN=" -"G1E<W1?;6%I;B@@:6YT("\J(&%R9V,@*B\L(&-H87(J("\J M(&%R9W8@*B];72 I#0I[#0H@(" @8V]N<W0@8VAA<B J('1E<W1F:6QE(#T@ M8F]O<W0Z.F%R8VAI=F4Z.G1M<&YA;2A.54Q,*3L-"B @("!"3T]35%]215%5 M25)%*$Y53$P@(3T@=&5S=&9I;&4I.PT*#0H@(" @+R\@=7-I;F<@9&5F875L M="!C;VYS=')U8W1O<@T*(" @(#HZ8F]O<W0Z.FUA=&@Z.G%U871E<FYI;VX\ M9FQO870^(" @(" @("!Q,#L-"B @(" Z.F)O;W-T.CIM871H.CIQ=6%T97)N M:6]N/&9L;V%T/B @(" @(" @<6%;,ET[#0H@(" @+R\@=7-I;F<@8V]N<W1R M=6-T;W(@(D@@<V5E;B!A<R!27C0B#0H@(" @.CIB;V]S=#HZ;6%T:#HZ<75A M=&5R;FEO;CQD;W5B;&4^(" @(" @('$Q*#$L,BPS+#0I.PT*(" @('L@(" - M"B @(" @(" @=&5S=%]O<W1R96%M(&]S*'1E<W1F:6QE+"!415-47U-44D5! M35]&3$%'4RD[#0H@(" @(" @('1E<W1?;V%R8VAI=F4@;V$H;W,I.PT*(" @ M(" @("!O82 \/"!"3T]35%]315))04Q)6D%424].7TY64"AQ,"D[#0H@(" @ M(" @(&]A(#P\($)/3U-47U-%4DE!3$E:051)3TY?3E90*'%A*3L-"B @(" @ M(" @;V$@/#P@0D]/4U1?4T5224%,25I!5$E/3E].5E H<3$I.PT*(" @('T- M"B @(" O+R!U<VEN9R!D969A=6QT(&-O;G-T<G5C=&]R#0H@(" @.CIB;V]S M=#HZ;6%T:#HZ<75A=&5R;FEO;CQF;&]A=#X@(" @(" @('$P,3L-"B @(" Z M.F)O;W-T.CIM871H.CIQ=6%T97)N:6]N/&9L;V%T/B @(" @(" @<6$Q6S)= M.PT*(" @("\O('5S:6YG(&-O;G-T<G5C=&]R(")(('-E96X@87,@4EXT(@T* M(" @(#HZ8F]O<W0Z.FUA=&@Z.G%U871E<FYI;VX\9&]U8FQE/B @(" @("!Q M,3$H,2PR+#,L-"D[#0H@(" @>PT*(" @(" @("!T97-T7VES=')E86T@:7,H M=&5S=&9I;&4L(%1%4U1?4U1214%-7T9,04=3*3L-"B @(" @(" @=&5S=%]I M87)C:&EV92!I82AI<RD[#0H@(" @(" @(&EA(#X^($)/3U-47U-%4DE!3$E: M051)3TY?3E90*'$P,2D[#0H@(" @(" @(&EA(#X^($)/3U-47U-%4DE!3$E: M051)3TY?3E90*'%A,2D[#0H@(" @(" @(&EA(#X^($)/3U-47U-%4DE!3$E: M051)3TY?3E90*'$Q,2D[#0H@(" @?0T*(" @('-T9#HZ<F5M;W9E*'1E<W1F M:6QE*3L-"@T*(" @($)/3U-47T-(14-+*'$P(#T]('$P,2D[#0H@(" @0D]/ M4U1?0TA%0TLH<6%;,%T@/3T@<6$Q6S!=*3L-"B @("!"3T]35%]#2$5#2RAQ M85LQ72 ]/2!Q83%;,5TI.PT*(" @($)/3U-47T-(14-+*'$Q(#T]('$Q,2D[ H#0H-"B @("!R971U<FX@8F]O<W0Z.F5X:71?<W5C8V5S<SL-"GT-"@`` ` end