diff --git a/include/boost_mpi_extensions/mpi_detach.hpp b/include/boost_mpi_extensions/mpi_detach.hpp index b7118bb291f1d5edf0e275b4ce9bbca6627883aa..ec99cf4734d382cad4a6315fc3bf70b73a282a1a 100644 --- a/include/boost_mpi_extensions/mpi_detach.hpp +++ b/include/boost_mpi_extensions/mpi_detach.hpp @@ -184,12 +184,8 @@ struct state inline std::optional<state> global_state; // Note: External-linkage optional used as a lazy-initialized stack variable. Must be reset prior to MPI_Finalize. } -typedef void MPI_Detach_callback (void*); -typedef void MPI_Detach_callback_status (void*, MPI_Status*); -typedef void MPI_Detach_callback_statuses(void*, std::int32_t, MPI_Status*); - // Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. -inline std::int32_t MPI_Detach ( MPI_Request* request , MPI_Detach_callback* callback, void* data) +inline std::int32_t MPI_Detach ( MPI_Request* request , std::function<void(void*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -208,8 +204,8 @@ inline std::int32_t MPI_Detach ( MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. -inline std::int32_t MPI_Detach_status ( MPI_Request* request , MPI_Detach_callback_status* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the request and invalidates it. +inline std::int32_t MPI_Detach_status ( MPI_Request* request , std::function<void(void*, MPI_Status*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -229,8 +225,8 @@ inline std::int32_t MPI_Detach_status ( MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requests, MPI_Detach_callback* callback, void** data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requests, std::function<void(void*)> callback, void** data) { if (!detail::global_state) detail::global_state.emplace(); @@ -252,8 +248,8 @@ inline std::int32_t MPI_Detach_each (std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requests, MPI_Detach_callback_status* callback, void** data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requests, std::function<void(void*, MPI_Status*)> callback, void** data) { if (!detail::global_state) detail::global_state.emplace(); @@ -276,8 +272,8 @@ inline std::int32_t MPI_Detach_each_status(std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requests, MPI_Detach_callback* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requests, std::function<void(void*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace(); @@ -297,8 +293,8 @@ inline std::int32_t MPI_Detach_all (std::int32_t count, MPI_Request* requ return MPI_SUCCESS; } -// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. -inline std::int32_t MPI_Detach_all_status (std::int32_t count, MPI_Request* requests, MPI_Detach_callback_statuses* callback, void* data) +// Note: If the test does not succeed immediately, takes the ownership of the requests and invalidates them. +inline std::int32_t MPI_Detach_all_status (std::int32_t count, MPI_Request* requests, std::function<void(void*, std::int32_t, MPI_Status*)> callback, void* data) { if (!detail::global_state) detail::global_state.emplace();