diff --git a/include/boost/archive/detail/oserializer.hpp b/include/boost/archive/detail/oserializer.hpp index 7ad828a0..8dec6bca 100644 --- a/include/boost/archive/detail/oserializer.hpp +++ b/include/boost/archive/detail/oserializer.hpp @@ -353,8 +353,14 @@ struct save_pointer_type { T & t ){ BOOST_DEDUCED_TYPENAME - boost::serialization::type_info_implementation::type - const & i = boost::serialization::type_info_implementation::type + // Borland complains if "const" is applied to something that + // is already "const" + #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560)) + const boost::serialization::type_info_implementation::type + #else + boost::serialization::type_info_implementation::type const + #endif + & i = boost::serialization::type_info_implementation::type ::get_const_instance(); boost::serialization::extended_type_info const * const this_type = & i; diff --git a/include/boost/serialization/export.hpp b/include/boost/serialization/export.hpp index 2b97f4fb..0f188ea9 100644 --- a/include/boost/serialization/export.hpp +++ b/include/boost/serialization/export.hpp @@ -104,18 +104,24 @@ BOOST_DLLEXPORT void ptr_serialization_support::instantiate() { export_impl::enable_save( - BOOST_DEDUCED_TYPENAME Archive::is_saving() + #if ! defined(__BORLANDC__) + BOOST_DEDUCED_TYPENAME + #endif + Archive::is_saving() ); export_impl::enable_load( - BOOST_DEDUCED_TYPENAME Archive::is_loading() + #if ! defined(__BORLANDC__) + BOOST_DEDUCED_TYPENAME + #endif + Archive::is_loading() ); } template struct guid_initializer { - const guid_initializer & export_guid(char const* key, mpl::false_){ + const guid_initializer & export_guid(char const* /* key */, mpl::false_){ // generates the statically-initialized objects whose constructors // register the information allowing serialization of T objects // through pointers to their base classes. diff --git a/include/boost/serialization/vector.hpp b/include/boost/serialization/vector.hpp index 96a81680..beca8f8c 100644 --- a/include/boost/serialization/vector.hpp +++ b/include/boost/serialization/vector.hpp @@ -110,7 +110,7 @@ inline void save( const std::vector &t, const unsigned int file_version ){ - save(ar,t,file_version, typename use_array_optimization::template apply::type()); + save(ar,t,file_version, BOOST_DEDUCED_TYPENAME use_array_optimization::template apply::type()); } template @@ -119,7 +119,7 @@ inline void load( std::vector &t, const unsigned int file_version ){ - load(ar,t,file_version, typename use_array_optimization::template apply::type()); + load(ar,t,file_version, BOOST_DEDUCED_TYPENAME use_array_optimization::template apply::type()); } // split non-intrusive serialization function member into separate