2
0
mirror of https://github.com/boostorg/mpi.git synced 2026-02-24 16:12:16 +00:00

Change partial specialization position to agree with nvcc/icc

This commit is contained in:
Alain Miniussi
2017-02-23 13:47:23 +01:00
parent 98c406a77f
commit 90e84fe143

View File

@@ -1148,6 +1148,115 @@ inline bool operator!=(const communicator& comm1, const communicator& comm2)
/************************************************************************
* Implementation details *
************************************************************************/
/**
* INTERNAL ONLY (using the same 'end' name might be considerd unfortunate
*/
template<>
BOOST_MPI_DECL void
communicator::send<packed_oarchive>(int dest, int tag,
const packed_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL void
communicator::send<packed_skeleton_oarchive>
(int dest, int tag, const packed_skeleton_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL void
communicator::send<content>(int dest, int tag, const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<packed_iarchive>(int source, int tag,
packed_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<packed_skeleton_iarchive>
(int source, int tag, packed_skeleton_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<const content>(int source, int tag,
const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
inline status
communicator::recv<content>(int source, int tag,
content& c) const
{
return recv<const content>(source,tag,c);
}
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<packed_oarchive>(int dest, int tag,
const packed_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<packed_skeleton_oarchive>
(int dest, int tag, const packed_skeleton_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<content>(int dest, int tag, const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::irecv<packed_skeleton_iarchive>
(int source, int tag, packed_skeleton_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::irecv<const content>(int source, int tag,
const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
inline request
communicator::irecv<content>(int source, int tag,
content& c) const
{
return irecv<const content>(source, tag, c);
}
// Count elements in a message
template<typename T>
inline optional<int> status::count() const
@@ -1768,115 +1877,6 @@ request communicator::irecv(int source, int tag, T* values, int n) const
return this->array_irecv_impl(source, tag, values, n, is_mpi_datatype<T>());
}
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL void
communicator::send<packed_oarchive>(int dest, int tag,
const packed_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL void
communicator::send<packed_skeleton_oarchive>
(int dest, int tag, const packed_skeleton_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL void
communicator::send<content>(int dest, int tag, const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<packed_iarchive>(int source, int tag,
packed_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<packed_skeleton_iarchive>
(int source, int tag, packed_skeleton_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL status
communicator::recv<const content>(int source, int tag,
const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
inline status
communicator::recv<content>(int source, int tag,
content& c) const
{
return recv<const content>(source,tag,c);
}
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<packed_oarchive>(int dest, int tag,
const packed_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<packed_skeleton_oarchive>
(int dest, int tag, const packed_skeleton_oarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::isend<content>(int dest, int tag, const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::irecv<packed_skeleton_iarchive>
(int source, int tag, packed_skeleton_iarchive& ar) const;
/**
* INTERNAL ONLY
*/
template<>
BOOST_MPI_DECL request
communicator::irecv<const content>(int source, int tag,
const content& c) const;
/**
* INTERNAL ONLY
*/
template<>
inline request
communicator::irecv<content>(int source, int tag,
content& c) const
{
return irecv<const content>(source, tag, c);
}
} } // end namespace boost::mpi
// If the user has already included skeleton_and_content.hpp, include