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:
@@ -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 { \
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user