
I've found an implementation of shared pointer serialization that martin ecker sent me some time ago. It seems to me that it is simple transparent and would satisfy all requirements. My only concern is that helper class concept attachement to the archive needs to be generalized but this is doable. Robert Ramey begin 666 shared_ptr.hpp M(VEF;F1E9B!"3T]35%]315))04Q)6D%424].7U-(05)%1%]05%)?2%!0#0HC M9&5F:6YE($)/3U-47U-%4DE!3$E:051)3TY?4TA!4D5$7U!44E](4% -"@T* M+R\@35,@8V]M<&%T:6)L92!C;VUP:6QE<G,@<W5P<&]R=" C<')A9VUA(&]N M8V4-"B-I9B!D969I;F5D*%]-4T-?5D52*2 F)B H7TU30U]615(@/CT@,3 R M,"D-"B,@<')A9VUA(&]N8V4-"B-E;F1I9@T*#0HO+R\O+R\O+R\Q+R\O+R\O M+R\O,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 M+R\O+R\O+R\W+R\O+R\O+R\O. T*+R\@<VAA<F5D7W!T<BYH<' Z('-E<FEA M;&EZ871I;VX@9F]R(&)O;W-T('-H87)E9"!P;VEN=&5R#0H-"B\O("A#*2!# M;W!Y<FEG:'0@,C P-"!2;V)E<G0@4F%M97D@86YD($UA<G1I;B!%8VME<@T* M+R\@57-E+"!M;V1I9FEC871I;VX@86YD(&1I<W1R:6)U=&EO;B!I<R!S=6)J M96-T('1O('1H92!";V]S="!3;V9T=V%R90T*+R\@3&EC96YS92P@5F5R<VEO M;B Q+C N("A3964@86-C;VUP86YY:6YG(&9I;&4@3$E#14Y315\Q7S N='AT M(&]R(&-O<'D@870-"B\O(&AT=' Z+R]W=W<N8F]O<W0N;W)G+TQ)0T5.4T5? M,5\P+G1X="D-"@T*+R\@(%-E92!H='1P.B\O=W=W+F)O;W-T+F]R9R!F;W(@ M=7!D871E<RP@9&]C=6UE;G1A=&EO;BP@86YD(')E=FES:6]N(&AI<W1O<GDN M#0H-"B-I;F-L=61E(#QB;V]S="]S:&%R961?<'1R+FAP<#X-"B-I;F-L=61E M(#QB;V]S="]W96%K7W!T<BYH<' ^#0HC:6YC;'5D92 \8F]O<W0O<V5R:6%L M:7IA=&EO;B]S<&QI=%]F<F5E+FAP<#X-"B-I;F-L=61E(#QB;V]S="]S97)I M86QI>F%T:6]N+VYV<"YH<' ^#0H-"FYA;65S<&%C92!B;V]S="![#0IN86UE M<W!A8V4@<V5R:6%L:7IA=&EO;GL-"@T*=&5M<&QA=&4\8VQA<W,@07)C:&EV M92P@8VQA<W,@5#X-"FEN;&EN92!V;VED('-A=F4H#0H@(" @07)C:&EV92 F M(&%R+ T*(" @(&-O;G-T(&)O;W-T.CIS:&%R961?<'1R/%0^("9T+ T*(" @ M(&-O;G-T('5N<VEG;F5D(&EN=" O*B!F:6QE7W9E<G-I;VX@*B\-"BE[#0H) M87(@/#P@8F]O<W0Z.G-E<FEA;&EZ871I;VXZ.FUA:V5?;G9P*")P>"(L('0N M9V5T*"DI.PT*?0T*#0IT96UP;&%T93QC;&%S<R!!<F-H:79E+"!C;&%S<R!4 M/@T*:6YL:6YE('9O:60@;&]A9"@-"B @("!!<F-H:79E("8@87(L#0H@(" @ M8F]O<W0Z.G-H87)E9%]P='(\5#X@)G0L#0H@(" @8V]N<W0@=6YS:6=N960@ M:6YT("\J(&9I;&5?=F5R<VEO;B J+PT**7L-"@E4*B!R.PT*"6%R(#X^(&)O M;W-T.CIS97)I86QI>F%T:6]N.CIM86ME7VYV<"@B<'@B+"!R*3L-"@ET(#T@ M87(N9V5T7W-H87)E9%]P=')?<F5G:7-T<GDH*2YL;V]K=7 H<BD[#0H):68@ M*"%T*0T*"7L-"@D)="YR97-E="AR*3L-"@D)87(N9V5T7W-H87)E9%]P=')? M<F5G:7-T<GDH*2YR96=I<W1E<E]S:&%R961?<'1R*'0I.PT*"7T-"GT-"@T* M=&5M<&QA=&4\8VQA<W,@07)C:&EV92P@8VQA<W,@5#X-"FEN;&EN92!V;VED M('-E<FEA;&EZ92@-"B @("!!<F-H:79E("8@87(L#0H@(" @8F]O<W0Z.G-H M87)E9%]P='(\5#X@)G0L#0H@(" @8V]N<W0@=6YS:6=N960@:6YT(&9I;&5? M=F5R<VEO;@T**7L-"B @("!B;V]S=#HZ<V5R:6%L:7IA=&EO;CHZ<W!L:71? M9G)E92AA<BP@="P@9FEL95]V97)S:6]N*3L-"GT-"@T*=&5M<&QA=&4\8VQA M<W,@07)C:&EV92P@8VQA<W,@5#X-"FEN;&EN92!V;VED('-A=F4H#0H@(" @ M07)C:&EV92 F(&%R+ T*(" @(&-O;G-T(&)O;W-T.CIW96%K7W!T<CQ4/B F M="P-"B @("!C;VYS="!U;G-I9VYE9"!I;G0@+RH@9FEL95]V97)S:6]N("HO M#0HI>PT*"6%R(#P\(&)O;W-T.CIS97)I86QI>F%T:6]N.CIM86ME7VYV<"@B M<'@B+"!T+FQO8VLH*2YG970H*2D[#0I]#0H-"G1E;7!L871E/&-L87-S($%R M8VAI=F4L(&-L87-S(%0^#0II;FQI;F4@=F]I9"!L;V%D* T*(" @($%R8VAI M=F4@)B!A<BP-"B @("!B;V]S=#HZ=V5A:U]P='(\5#X@)G0L#0H@(" @8V]N M<W0@=6YS:6=N960@:6YT("\J(&9I;&5?=F5R<VEO;B J+PT**7L-"@E4*B!R M.PT*"6%R(#X^(&)O;W-T.CIS97)I86QI>F%T:6]N.CIM86ME7VYV<"@B<'@B M+"!R*3L-"@EB;V]S=#HZ<VAA<F5D7W!T<CQ4/B!S<" ](&%R+F=E=%]S:&%R M961?<'1R7W)E9VES=')Y*"DN;&]O:W5P*'(I.PT*"6EF("@A<W I#0H)>PT* M"0ES<"YR97-E="AR*3L-"@D)87(N9V5T7W-H87)E9%]P=')?<F5G:7-T<GDH M*2YR96=I<W1E<E]S:&%R961?<'1R*'-P*3L-"@E]#0H-"@DO+R!A<W-I9VX@ M=&AE('-H87)E9%]P='(@=&\@=&AE('=E86M?<'1R#0H)=" ]('-P.PT*?0T* M#0IT96UP;&%T93QC;&%S<R!!<F-H:79E+"!C;&%S<R!4/@T*:6YL:6YE('9O M:60@<V5R:6%L:7IE* T*(" @($%R8VAI=F4@)B!A<BP-"B @("!B;V]S=#HZ M=V5A:U]P='(\5#X@)G0L#0H@(" @8V]N<W0@=6YS:6=N960@:6YT(&9I;&5? M=F5R<VEO;@T**7L-"B @("!B;V]S=#HZ<V5R:6%L:7IA=&EO;CHZ<W!L:71? M9G)E92AA<BP@="P@9FEL95]V97)S:6]N*3L-"GT-"@T*?2 O+R!N86UE<W!A M8V4@<V5R:6%L:7IA=&EO;@T*?2 O+R!N86UE<W!A8V4@8F]O<W0-"@T*(V5N %9&EF#0H` ` end