
Marc Wäckerlin wrote:
Brian Stempel wrote:
Now I started by reading the "Serialization Archive Class Reference" on http://boost.org/libs/serialization/doc/archive_reference.html, which describes how to implement my own archive.
Unfortunately, if I copy the code from the "simplest possible output archive" there into a header file, then write a code file that does nothing except including that header, the result is not compilable (GNU g++ 4.1.2).
First problem:
friend class boost::archive::load_access is undefined, so I have to add a forward declaration: namespace boost { namespace archive { class load_access; } }
Hmm - I looked at this again and didn't see the need for the above. In fact, when I compiled with my other compilers - none complained. So, though its harmless to add - I'm not sure it should be in the example.
Second problem (see attached test.cpp):
In compiling your/my example from the document with VC 7.1 - though not with the other compilers at hand, I did get an error - which was a surprise to me. However, its a different error than the one you get. Also none of my other compilers had a problem with this. So my real answer to your question "What's missing?" is "I don't know". Both your error message from gcc 4.1 and mine from VC 7.1 - which are different - can't be explained by me. So I would say we'll have to call this "under investigation" Adding more "#includes" might seem to fix the problem. But the point of the example is to show what a minimal example is - so I'm really curious as to what is going on. You might try replacing your versions of the attached files with the attached one and let me know what happens. Robert Ramey
g++ test.cpp /usr/include/boost/archive/detail/interface_iarchive.hpp: In member function 'const boost::archive::detail::basic_pointer_iserializer* boost::archive::detail::interface_iarchive<Archive>::register_type(T*)': /usr/include/boost/archive/detail/interface_iarchive.hpp:54: error: 'instantiate_pointer_iserializer' is not a member of 'boost::archive::detail' /usr/include/boost/archive/detail/interface_iarchive.hpp:58: error: invalid use of undefined type 'const struct boost::archive::detail::basic_pointer_iserializer' /usr/include/boost/archive/detail/basic_iarchive.hpp:41: error: forward declaration of 'const struct boost::archive::detail::basic_pointer_iserializer'
What's missing?
Thank you Regards Marc
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
begin 666 interface_iarchive.hpp M(VEF;F1E9B!"3T]35%]!4D-(259%7T1%5$%)3%])3E1%4D9!0T5?24%20TA) M5D5?2%!0#0HC9&5F:6YE($)/3U-47T%20TA)5D5?1$5404E,7TE.5$521D%# M15])05)#2$E615](4% -"@T*+R\@35,@8V]M<&%T:6)L92!C;VUP:6QE<G,@ M<W5P<&]R=" C<')A9VUA(&]N8V4-"B-I9B!D969I;F5D*%]-4T-?5D52*2 F M)B H7TU30U]615(@/CT@,3 R,"D-"B,@<')A9VUA(&]N8V4-"B-E;F1I9@T* M#0HO+R\O+R\O+R\Q+R\O+R\O+R\O,B\O+R\O+R\O+S,O+R\O+R\O+R\T+R\O M+R\O+R\O-2\O+R\O+R\O+S8O+R\O+R\O+R\W+R\O+R\O+R\O. T*+R\@:6YT M97)F86-E7VEA<F-H:79E+FAP< T*#0HO+R H0RD@0V]P>7)I9VAT(#(P,#(@ M4F]B97)T(%)A;65Y("T@:'1T<#HO+W=W=RYR<G-D+F-O;2 N( T*+R\@57-E M+"!M;V1I9FEC871I;VX@86YD(&1I<W1R:6)U=&EO;B!I<R!S=6)J96-T('1O M('1H92!";V]S="!3;V9T=V%R90T*+R\@3&EC96YS92P@5F5R<VEO;B Q+C N M("A3964@86-C;VUP86YY:6YG(&9I;&4@3$E#14Y315\Q7S N='AT(&]R(&-O M<'D@870-"B\O(&AT=' Z+R]W=W<N8F]O<W0N;W)G+TQ)0T5.4T5?,5\P+G1X M="D-"@T*+R\@(%-E92!H='1P.B\O=W=W+F)O;W-T+F]R9R!F;W(@=7!D871E M<RP@9&]C=6UE;G1A=&EO;BP@86YD(')E=FES:6]N(&AI<W1O<GDN#0HC:6YC M;'5D92 \<W1R:6YG/@T*(VEN8VQU9&4@/&)O;W-T+V-S=&1I;G0N:'!P/@T* M(VEN8VQU9&4@/&)O;W-T+VUP;"]B;V]L+FAP<#X-"B-I;F-L=61E(#QB;V]S M="]A<F-H:79E+V1E=&%I;"]A=71O7VQI;FM?87)C:&EV92YH<' ^#0HC:6YC M;'5D92 \8F]O<W0O87)C:&EV92]D971A:6PO:7-E<FEA;&EZ97(N:'!P/@T* M(VEN8VQU9&4@/&)O;W-T+V%R8VAI=F4O9&5T86EL+V%B:5]P<F5F:7@N:'!P M/B O+R!M=7-T(&)E('1H92!L87-T(&AE861E<@T*#0IN86UE<W!A8V4@8F]O M<W0@>PT*=&5M<&QA=&4\8VQA<W,@5#X-"F-L87-S('-H87)E9%]P='([#0IN M86UE<W!A8V4@<V5R:6%L:7IA=&EO;B![#0H@(" @8VQA<W,@97AT96YD961? M='EP95]I;F9O.PT*?2 O+R!N86UE<W!A8V4@<V5R:6%L:7IA=&EO;@T*#0IN M86UE<W!A8V4@87)C:&EV92![#0IN86UE<W!A8V4@9&5T86EL('L-"@T*8VQA M<W,@0D]/4U1?05)#2$E615]$14-,*$)/3U-47U!07T5-4%19*"DI(&)A<VEC M7W!O:6YT97)?:7-E<FEA;&EZ97([#0H-"G1E;7!L871E/&-L87-S($%R8VAI M=F4^#0IC;&%S<R!I;G1E<F9A8V5?:6%R8VAI=F4@#0I[#0IP<F]T96-T960Z M#0H@(" @:6YT97)F86-E7VEA<F-H:79E*"E[?3L-"G!U8FQI8SH-"B @(" O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\-"B @(" O+R!A<F-H:79E('!U8FQI8R!I;G1E<F9A8V4- M"B @("!T>7!E9&5F(&UP;#HZ8F]O;%\\=')U93X@:7-?;&]A9&EN9SL-"B @ M("!T>7!E9&5F(&UP;#HZ8F]O;%\\9F%L<V4^(&ES7W-A=FEN9SL-"@T*(" @ M("\O(')E='5R;B!A('!O:6YT97(@=&\@=&AE(&UO<W0@9&5R:79E9"!C;&%S M<PT*(" @($%R8VAI=F4@*B!4:&ES*"E[#0H@(" @(" @(')E='5R;B!S=&%T M:6-?8V%S=#Q!<F-H:79E("H^*'1H:7,I.PT*(" @('T-"@T*(" @('1E;7!L M871E/&-L87-S(%0^#0H@(" @8V]N<W0@0D]/4U1?05)#2$E615]$14-,*$)/ M3U-47U!07T5-4%19*"DI(&)A<VEC7W!O:6YT97)?:7-E<FEA;&EZ97(@*B - M"B @("!R96=I<W1E<E]T>7!E*%0@*B ]($Y53$PI>PT*(" @(" @("!C;VYS M="!"3T]35%]!4D-(259%7T1%0TPH0D]/4U1?4%!?14U05%DH*2D@8F%S:6-? M<&]I;G1E<E]I<V5R:6%L:7IE<B F(&)P:7,@/0T*(" @(" @(" @(" @<&]I M;G1E<E]I<V5R:6%L:7IE<CQ!<F-H:79E+"!4/CHZ9V5T7VEN<W1A;F-E*"D[ M#0H@(" @(" @('1H:7,M/E1H:7,H*2T^<F5G:7-T97)?8F%S:6-?<V5R:6%L M:7IE<BAB<&ES+F=E=%]B87-I8U]S97)I86QI>F5R*"DI.PT*(" @(" @("!R M971U<FX@)B!B<&ES.PT*(" @('T-"B @("!T96UP;&%T93QC;&%S<R!4/@T* M(" @($%R8VAI=F4@)B!O<&5R871O<CX^*%0@)B!T*7L-"B @(" @(" @=&AI M<RT^5&AI<R@I+3YL;V%D7V]V97)R:61E*'0L(# I.PT*(" @(" @("!R971U M<FX@*B!T:&ES+3Y4:&ES*"D[#0H@(" @?0T*#0H@(" @+R\@=&AE("8@;W!E M<F%T;W(@#0H@(" @=&5M<&QA=&4\8VQA<W,@5#X-"B @("!!<F-H:79E("8@ M;W!E<F%T;W(F*%0@)B!T*7L-"B @(" @(" @<F5T=7)N("HH=&AI<RT^5&AI M<R@I*2 ^/B!T.PT*(" @('T-"GT[#0H-"GT@+R\@;F%M97-P86-E(&1E=&%I M; T*?2 O+R!N86UE<W!A8V4@87)C:&EV90T*?2 O+R!N86UE<W!A8V4@8F]O M<W0-"@T*(VEN8VQU9&4@/&)O;W-T+V%R8VAI=F4O9&5T86EL+V%B:5]S=69F M:7@N:'!P/B O+R!P;W!S(&%B:5]S=69F:7@N:'!P('!R86=M87,-"@T*(V5N M9&EF("\O($)/3U-47T%20TA)5D5?1$5404E,7TE.5$521D%#15])05)#2$E6 '15](4% -"@`` ` end begin 666 basic_iarchive.hpp M(VEF;F1E9B!"3T]35%]!4D-(259%7T1%5$%)3%]"05-)0U])05)#2$E615]( M4% -"B-D969I;F4@0D]/4U1?05)#2$E615]$151!24Q?0D%324-?24%20TA) M5D5?2%!0#0H-"B\O($U3(&-O;7!A=&EB;&4@8V]M<&EL97)S('-U<'!O<G0@ M(W!R86=M82!O;F-E#0HC:68@9&5F:6YE9"A?35-#7U9%4BD@)B8@*%]-4T-? M5D52(#X](#$P,C I#0HC('!R86=M82!O;F-E#0HC96YD:68-"@T*+R\O+R\O M+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+R\O+S4O M+R\O+R\O+R\V+R\O+R\O+R\O-R\O+R\O+R\O+S@-"B\O(&)A<VEC7VEA<F-H M:79E+FAP<#H-"@T*+R\@*$,I($-O<'ER:6=H=" R,# R(%)O8F5R="!286UE M>2 M(&AT=' Z+R]W=W<N<G)S9"YC;VT@+B -"B\O(%5S92P@;6]D:69I8V%T M:6]N(&%N9"!D:7-T<FEB=71I;VX@:7,@<W5B:F5C="!T;R!T:&4@0F]O<W0@ M4V]F='=A<F4-"B\O($QI8V5N<V4L(%9E<G-I;VX@,2XP+B H4V5E(&%C8V]M M<&%N>6EN9R!F:6QE($Q)0T5.4T5?,5\P+G1X="!O<B!C;W!Y(&%T#0HO+R!H M='1P.B\O=W=W+F)O;W-T+F]R9R],24-%3E-%7S%?,"YT>'0I#0H-"B\O("!3 M964@:'1T<#HO+W=W=RYB;V]S="YO<F<@9F]R('5P9&%T97,L(&1O8W5M96YT M871I;VXL(&%N9"!R979I<VEO;B!H:7-T;W)Y+@T*#0HO+R!C86XG="!U<V4@ M=&AI<R M(&UU8V@@87,@22=D(&QI:V4@=&\@87,@8F]R;&%N9"!D;V5S;B=T M('-U<'!O<G0@:70-"B\O("-I;F-L=61E(#QB;V]S="]S8V]P961?<'1R+FAP M<#X-"@T*(VEN8VQU9&4@/&)O;W-T+V-O;F9I9RYH<' ^#0HC:6YC;'5D92 \ M8F]O<W0O87)C:&EV92]B87-I8U]A<F-H:79E+FAP<#X-"B-I;F-L=61E(#QB M;V]S="]S97)I86QI>F%T:6]N+W1R86-K:6YG7V5N=6TN:'!P/@T*#0HC:6YC M;'5D92 \8F]O<W0O87)C:&EV92]D971A:6PO86)I7W!R969I>"YH<' ^("\O M(&UU<W0@8F4@=&AE(&QA<W0@:&5A9&5R#0H-"FYA;65S<&%C92!B;V]S="![ M#0IT96UP;&%T93QC;&%S<R!4/@T*8VQA<W,@<VAA<F5D7W!T<CL-"@T*;F%M M97-P86-E('-E<FEA;&EZ871I;VX@>PT*(" @(&-L87-S(&5X=&5N9&5D7W1Y M<&5?:6YF;SL-"GT@+R\@;F%M97-P86-E('-E<FEA;&EZ871I;VX-"@T*;F%M M97-P86-E(&%R8VAI=F4@>PT*;F%M97-P86-E(&1E=&%I;"![#0H-"F-L87-S M(&)A<VEC7VEA<F-H:79E7VEM<&P[#0IC;&%S<R!"3T]35%]!4D-(259%7T1% M0TPH0D]/4U1?4%!?14U05%DH*2D@8F%S:6-?:7-E<FEA;&EZ97([#0IC;&%S M<R!"3T]35%]!4D-(259%7T1%0TPH0D]/4U1?4%!?14U05%DH*2D@8F%S:6-? M<&]I;G1E<E]I<V5R:6%L:7IE<CL-"B\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O+R\O M+R\-"B\O(&-L87-S(&)A<VEC7VEA<F-H:79E("T@<F5A9"!S97)I86QI>F5D M(&]B:F5C=',@9G)O;2!A(&EN<'5T('-T<F5A;0T*8VQA<W,@0D]/4U1?05)# M2$E615]$14-,*$)/3U-47U!07T5-4%19*"DI(&)A<VEC7VEA<F-H:79E( T* M>PT*(" @(&9R:65N9"!C;&%S<R!B87-I8U]I87)C:&EV95]I;7!L.PT*(" @ M("\O(&AI9&4@:6UP;&5M96YT871I;VX@;V8@=&AI<R!C;&%S<R!T;R!M:6YI M;6EZ92!H96%D97(@8V]N8VQU<VEO;@T*(" @("\O(&EN(&-L:65N="!C;V1E M+B!)(&-O=6QD;B=T('5S960@<V-O<&5D('!O:6YT97(@=VET:"!B;W)L86YD M#0H@(" @+R\@8F]O<W0Z.G-C;W!E9%]P='(\8F%S:6-?:6%R8VAI=F5?:6UP M;#X@<&EM<&P[#0H@(" @8F%S:6-?:6%R8VAI=F5?:6UP;" J('!I;7!L.PT* M#0H@(" @=FER='5A;"!V;VED('9L;V%D*'9E<G-I;VY?='EP92 F="D@/2 @ M,#L-"B @("!V:7)T=6%L('9O:60@=FQO860H;V)J96-T7VED7W1Y<&4@)G0I M(#T@(# [#0H@(" @=FER='5A;"!V;VED('9L;V%D*&-L87-S7VED7W1Y<&4@ M)G0I(#T@(# [#0H@(" @=FER='5A;"!V;VED('9L;V%D*&-L87-S7VED7V]P M=&EO;F%L7W1Y<&4@)G0I(#T@,#L-"B @("!V:7)T=6%L('9O:60@=FQO860H M8VQA<W-?;F%M95]T>7!E("9T*2 ](# [#0H@(" @=FER='5A;"!V;VED('9L M;V%D*'1R86-K:6YG7W1Y<&4@)G0I(#T@,#L-"G!R;W1E8W1E9#H-"B @("!B M87-I8U]I87)C:&EV92AU;G-I9VYE9"!I;G0@9FQA9W,I.PT*(" @("\O(&%C M8V]U;G0@9F]R(&)O9W5S(&=C8R!W87)N:6YG#0H@(" @(VEF(&1E9FEN960H M7U]'3E5#7U\I#0H@(" @=FER='5A; T*(" @("-E;F1I9@T*(" @('YB87-I M8U]I87)C:&EV92@I.PT*<'5B;&EC.@T*(" @("\O(&YO=&4Z($Y/5"!P87)T M(&]F('1H92!P=6)L:6,@05!)+@T*(" @('9O:60@;F5X=%]O8FIE8W1?<&]I M;G1E<BAV;VED("IT*3L-"B @("!V;VED(')E9VES=&5R7V)A<VEC7W-E<FEA M;&EZ97(H8V]N<W0@8F%S:6-?:7-E<FEA;&EZ97(@)B!B:7,I.PT*(" @('9O M:60@;&]A9%]O8FIE8W0H#0H@(" @(" @('9O:60@*G0L( T*(" @(" @("!C M;VYS="!B87-I8U]I<V5R:6%L:7IE<B F(&)I<PT*(" @("D[#0H@(" @8V]N M<W0@0D]/4U1?05)#2$E615]$14-,*$)/3U-47U!07T5-4%19*"DI(&)A<VEC M7W!O:6YT97)?:7-E<FEA;&EZ97(@*B -"B @("!L;V%D7W!O:6YT97(H#0H@ M(" @(" @('9O:60@*B F('0L( T*(" @(" @("!C;VYS="!B87-I8U]P;VEN M=&5R7VES97)I86QI>F5R("H@8G!I<U]P='(L#0H@(" @(" @(&-O;G-T(&)A M<VEC7W!O:6YT97)?:7-E<FEA;&EZ97(@*B H*F9I;F1E<BDH#0H@(" @(" @ M(" @("!C;VYS="!B;V]S=#HZ<V5R:6%L:7IA=&EO;CHZ97AT96YD961?='EP M95]I;F9O("8@971I#0H@(" @(" @("D-"B @(" I.PT*(" @("\O(')E86P@ M<'5B;&EC($%022!S=&%R=',@:&5R90T*(" @('9O:60@#0H@(" @<V5T7VQI M8G)A<GE?=F5R<VEO;BAU;G-I9VYE9"!I;G0@87)C:&EV95]L:6)R87)Y7W9E M<G-I;VXI.PT*(" @('5N<VEG;F5D(&EN=" -"B @("!G971?;&EB<F%R>5]V M97)S:6]N*"D@8V]N<W0[#0H@(" @=6YS:6=N960@:6YT#0H@(" @9V5T7V9L M86=S*"D@8V]N<W0[#0H@(" @=F]I9" -"B @("!R97-E=%]O8FIE8W1?861D M<F5S<RAC;VYS="!V;VED("H@;F5W7V%D9')E<W,L(&-O;G-T('9O:60@*B!O M;&1?861D<F5S<RD[#0H@(" @=F]I9" -"B @("!D96QE=&5?8W)E871E9%]P M;VEN=&5R<R@I.PT*?3L-"@T*?2 O+R!N86UE<W!A8V4@9&5T86EL#0I]("\O M(&YA;65S<&%C92!A<F-H:79E#0I]("\O(&YA;65S<&%C92!B;V]S= T*#0HO M+R!R97%U:7)E9"!B>2!S;6%R=%]C87-T(&9O<B!C;VUP:6QE<G,@;F]T(&EM M<&QE;65N=&EN9R -"B\O('!A<G1I86P@=&5M<&QA=&4@<W!E8VEA;&EZ871I M;VX-"D)/3U-47T)23TM%3E]#3TU024Q%4E]465!%7U1204E44U]34$5#24%, M25I!5$E/3B@-"B @("!B;V]S=#HZ87)C:&EV93HZ9&5T86EL.CIB87-I8U]I M87)C:&EV90T**0T*#0HC:6YC;'5D92 \8F]O<W0O87)C:&EV92]D971A:6PO M86)I7W-U9F9I>"YH<' ^("\O('!O<',@86)I7W-U9F9I>"YH<' @<')A9VUA M<PT*#0HC96YD:68@+R]"3T]35%]!4D-(259%7T1%5$%)3%]"05-)0U])05)# *2$E615](4% -"@`` ` end