2
0
mirror of https://github.com/boostorg/mpi.git synced 2026-02-26 04:42:23 +00:00

Fixes for homogenous MPI when using new version of the serialization library

[SVN r65965]
This commit is contained in:
Matthias Troyer
2010-10-14 20:08:27 +00:00
parent ae1f7e6406
commit 170dfd4717
2 changed files with 11 additions and 10 deletions

View File

@@ -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 { \

View File

@@ -89,15 +89,15 @@ public:
template<class CharType>
void load(std::basic_string<CharType> & 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<char *>(s.data()),get_mpi_datatype(CharType()),l);
load_impl(const_cast<CharType *>(s.data()),get_mpi_datatype(CharType()),l);
}
private:
@@ -108,10 +108,10 @@ private:
(const_cast<char*>(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