title: portable archive not compiling under GCC
body: <p>I need to (de)serialize data on both Windows and Linux (and transfer the files in between). I wanted to use the portable binary archives of Boost's serialization library which can be found in the examples, see e.g. at <a href="http://boost-doc-zh.googlecode.com/svn-history/r380/trunk/libs/serialization/example/" rel="nofollow">http://boost-doc-zh.googlecode.com/svn-history/r380/trunk/libs/serialization/example/</a></p>
  
  <p>This works fine on Windows (VS 2008) but fails to compile under GCC 4.3.2 with the following errors.</p>
  
  <p>Can anybody suggest a solution? </p>
  
  <p>Thanks a lot!</p>
  
  <pre><code>/projects/lib/BOOST/1_44_0/include/boost/archive/basic_archive.hpp: In member function 'void portable_binary_iarchive::init(unsigned int)':
  /projects/lib/BOOST/1_44_0/include/boost/archive/basic_archive.hpp:78: error: 'uint_least32_t boost::archive::version_type::t' is private
  /home/myfolder/src/portable_binary_iarchive.cpp:92: error: within this context
  /home/myfolder/src/portable_binary_iarchive.hpp: In member function 'void portable_binary_iarchive::load(T&amp;) [with T = boost::archive::class_id_type]':
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/iserializer.hpp:107:   instantiated from 'static void boost::archive::load_access::load_primitive(Archive&amp;, T&amp;) [with Archive = portable_binary_iarchive, T = boost::archive::class_id_type]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/iserializer.hpp:356:   instantiated from 'static void boost::archive::detail::load_non_pointer_type&lt;Archive&gt;::load_primitive::invoke(Archive&amp;, T&amp;) [with T = boost::archive::class_id_type, Archive = portable_binary_iarchive]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/iserializer.hpp:433:   instantiated from 'static void boost::archive::detail::load_non_pointer_type&lt;Archive&gt;::invoke(Archive&amp;, T&amp;) [with T = boost::archive::class_id_type, Archive = portable_binary_iarchive]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/iserializer.hpp:586:   instantiated from 'void boost::archive::load(Archive&amp;, T&amp;) [with Archive = portable_binary_iarchive, T = boost::archive::class_id_type]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/common_iarchive.hpp:66:   instantiated from 'void boost::archive::detail::common_iarchive&lt;Archive&gt;::load_override(T&amp;, int) [with T = boost::archive::class_id_type, Archive = portable_binary_iarchive]'
  /home/myfolder/src/portable_binary_iarchive.hpp:140:   instantiated from 'void portable_binary_iarchive::load_override(T&amp;, int) [with T = boost::archive::class_id_type]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/interface_iarchive.hpp:60:   instantiated from 'Archive&amp; boost::archive::detail::interface_iarchive&lt;Archive&gt;::operator&gt;&gt;(T&amp;) [with T = boost::archive::class_id_type, Archive = portable_binary_iarchive]'
  /projects/lib/BOOST/1_44_0/include/boost/archive/detail/common_iarchive.hpp:51:   instantiated from 'void boost::archive::detail::common_iarchive&lt;Archive&gt;::vload(boost::archive::class_id_type&amp;) [with Archive = portable_binary_iarchive]'
  /home/myfolder/src/portable_binary_iarchive.cpp:128:   instantiated from here
  /home/myfolder/src/portable_binary_iarchive.hpp:107: error: call of overloaded 'class_id_type(intmax_t&amp;)' is ambiguous
  /projects/lib/BOOST/1_44_0/include/boost/archive/basic_archive.hpp:118: note: candidates are: boost::archive::class_id_type::class_id_type(size_t)
  /projects/lib/BOOST/1_44_0/include/boost/archive/basic_archive.hpp:115: note:                 boost::archive::class_id_type::class_id_type(int)
  </code></pre>