diff --git a/include/boost/mpi/datatype.hpp b/include/boost/mpi/datatype.hpp index 517126b..7fa7e1c 100644 --- a/include/boost/mpi/datatype.hpp +++ b/include/boost/mpi/datatype.hpp @@ -341,12 +341,13 @@ BOOST_MPI_DATATYPE(boost::archive::object_reference_type, get_mpi_datatype(uint_ BOOST_MPI_DATATYPE(boost::archive::tracking_type, get_mpi_datatype(bool()), builtin); BOOST_MPI_DATATYPE(boost::serialization::collection_size_type, get_mpi_datatype(std::size_t()), integer); BOOST_MPI_DATATYPE(boost::serialization::item_version_type, get_mpi_datatype(uint_least8_t()), integer); - #endif // Doxygen } } // end namespace boost::mpi +// direct support for special primitive data types of the serialization library +// in the case of homogeneous systems // define a macro to make explicit designation of this more transparent #define BOOST_IS_MPI_DATATYPE(T) \ namespace boost { \ diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp index 9471a00..9380c4b 100644 --- a/include/boost/mpi/detail/packed_iprimitive.hpp +++ b/include/boost/mpi/detail/packed_iprimitive.hpp @@ -89,15 +89,15 @@ public: template void load(std::basic_string & s) { - unsigned int l; + unsigned int l; load(l); // borland de-allocator fixup - #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) - if(NULL != s.data()) - #endif +// #if BOOST_WORKAROUND(_RWSTD_VER, BOOST_TESTED_AT(20101)) +// if(NULL != s.data()) +// #endif s.resize(l); // note breaking a rule here - could be a problem on some platform - load_impl(const_cast(s.data()),get_mpi_datatype(CharType()),l); + load_impl(const_cast(s.data()),get_mpi_datatype(CharType()),l); } private: @@ -108,10 +108,10 @@ private: (const_cast(boost::serialization::detail::get_data(buffer_)), buffer_.size(), &position, p, l, t, comm)); } - buffer_type & buffer_; - mutable std::size_t size_; - MPI_Comm comm; - int position; + buffer_type & buffer_; + mutable std::size_t size_; + MPI_Comm comm; + int position; }; } } // end namespace boost::mpi