<DIV>Hi,</DIV>  <DIV>&nbsp;</DIV>  <DIV>&nbsp;&nbsp;&nbsp; I run into compilation error with the Intel compiler for doing serialization traits and tracking. I have the following code which does serialization of virtual base classes :</DIV>  <DIV>&nbsp;</DIV>  <DIV><BR><BR>#include &lt;boost/archive/text_iarchive.hpp&gt;<BR>#include &lt;boost/archive/text_oarchive.hpp&gt;<BR>#include &lt;boost/serialization/utility.hpp&gt;<BR>#include &lt;boost/serialization/split_member.hpp&gt;<BR>#include &lt;boost/serialization/tracking.hpp&gt;<BR>#include &lt;boost/serialization/nvp.hpp&gt;<BR>#include &lt;boost/serialization/export.hpp&gt;</DIV>  <DIV>typedef unsigned _int64 ut8;<BR>typedef unsigned char otext;<BR>typedef unsigned int ut4;</DIV>  <DIV>class Object<BR>{<BR>private:<BR>&nbsp;&nbsp;&nbsp; void* _ojhi;<BR>&nbsp;&nbsp;&nbsp; ut8 _seqno;</DIV>  <DIV>public:<BR>&nbsp;&nbsp;&nbsp; template&lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void save(Archive &amp;ar, const unsigned int /* file
 version */) const<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;ar &lt;&lt; BOOST_SERIALIZATION_NVP(_ojhi) &lt;&lt; BOOST_SERIALIZATION_NVP(_seqno);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; template&lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void load(Archive&amp; ar, const unsigned int /* file version */) <BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;ar &gt;&gt; BOOST_SERIALIZATION_NVP(_ojhi) &gt;&gt; BOOST_SERIALIZATION_NVP(_seqno);<BR>&nbsp;&nbsp;&nbsp; }</DIV>  <DIV>&nbsp;&nbsp;&nbsp; BOOST_SERIALIZATION_SPLIT_MEMBER()</DIV>  <DIV>protected:<BR>&nbsp;&nbsp;&nbsp; Object(const Object&amp; ) : _ojhi(NULL), _seqno(0) {}<BR>&nbsp;&nbsp;&nbsp; Object(const char *num=NULL, int is_stub=1) :<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _ojhi(NULL), _seqno(0) {}<BR>&nbsp;&nbsp;&nbsp; virtual ~Object() {}<BR>&nbsp;&nbsp;&nbsp; void operator=(const Object&amp; ) {}</DIV>  <DIV>};<BR>BOOST_IS_ABSTRACT(Object)<BR>BOOST_CLASS_TRACKING(Object, track_always)</DIV>  <DIV>class EModule {<BR>&nbsp;
 public:<BR>class IInterface : public virtual Object {<BR>&nbsp; private:<BR>&nbsp;&nbsp;&nbsp; static const otext * _Desc;<BR>&nbsp;&nbsp;&nbsp; static const ut4 _pkgIndex;<BR>&nbsp;&nbsp;&nbsp; static const ut4 _clsIndex;</DIV>  <DIV>&nbsp; protected:<BR>&nbsp;&nbsp;&nbsp; IInterface() {}<BR>&nbsp;&nbsp;&nbsp; IInterface(const IInterface&amp;) {}</DIV>  <DIV>&nbsp; public:<BR>&nbsp;&nbsp;&nbsp; template&lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void save(Archive&amp; ar, const unsigned int /*file_version*/) const<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;ar &lt;&lt; const_cast(otext *&gt; (_Desc) &lt;&lt; const_cast&lt;ut4&gt; (_pkgIndex) &lt;&lt; const_cast&lt;ut4&gt; (_clsIndex);<BR>&nbsp;ar &lt;&lt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(Object);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; template&lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void load(Archive&amp; ar, const unsigned int /*file_version*/) const<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;ar &lt;&lt; const_cast(otext *&gt; (_Desc)
 &lt;&lt; const_cast&lt;ut4&gt; (_pkgIndex) &lt;&lt; const_cast&lt;ut4&gt; (_clsIndex);<BR>&nbsp;ar &lt;&lt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(Object);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp; };<BR>};</DIV>  <DIV>BOOST_CLASS_TRACKING(EModule::IInterface, track_always)</DIV>  <DIV>class CModule {<BR>&nbsp; public:<BR>class CInterface : public virtual EModule::IInterface, public virtual Object {<BR>&nbsp; private:<BR>&nbsp;&nbsp;&nbsp; static const otext * _Desc;<BR>&nbsp;&nbsp;&nbsp; static const ut4 _pkgIndex;<BR>&nbsp;&nbsp;&nbsp; static const ut4 _clsIndex;</DIV>  <DIV>&nbsp; protected:<BR>&nbsp;&nbsp;&nbsp; CInterface() {}<BR>&nbsp;&nbsp;&nbsp; CInterface(const CInterface&amp;) {}</DIV>  <DIV>&nbsp; public:<BR>&nbsp;&nbsp;&nbsp; template &lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void save(Archive&amp; ar, const unsigned int /* file_version */) const<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &lt;&lt; const_cast&lt;otext *&gt; (_Desc) &lt;&lt; const_cast&lt;ut4&gt;
 (_pkgIndex) &lt;&lt; const_cast&lt;ut4&gt; (_clsIndex);<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &lt;&lt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(EModule::IInterface);<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &lt;&lt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(Object);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; template &lt;class Archive&gt;<BR>&nbsp;&nbsp;&nbsp; void load(Archive &amp; ar, const unsigned int /* file_version */)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &gt;&gt; const_cast&lt;otext *&gt; (_Desc) &gt;&gt; const_cast&lt;ut4&gt; (_pkgIndex) &gt;&gt; const_cast&lt;ut4&gt; (_clsIndex);<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &gt;&gt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(EModule::IInterface);<BR>&nbsp;&nbsp;&nbsp; &nbsp;ar &gt;&gt; BOOST_SERIALIZATION_BASE_OBJECT_NVP(Object);<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; BOOST_SERIALIZATION_SPLIT_MEMBER()<BR>&nbsp;&nbsp;&nbsp; virtual ~CInterface() {}<BR>&nbsp; };<BR>};</DIV>  <DIV>BOOST_CLASS_EXPORT(CModule::CInterface)<BR></DIV> 
 <DIV>&nbsp;</DIV>  <DIV>I followed strictly from the documentation. Is there a way I can get it compiled?</DIV>  <DIV>Enclosed please find the compile log.</DIV><p>
	
		<hr size=1> Yahoo! Mail<br> 
<a href="http://us.rd.yahoo.com/mail_us/taglines/pmall2/*http://photomail.mail.yahoo.com">Use Photomail</a> to share photos without annoying attachments.
