22#include "kamping/communicator.hpp"
24#include "kamping/implementation_helpers.hpp"
56 template <
typename...>
57 typename DefaultContainerType,
58 template <
typename,
template <
typename...>
typename>
60template <
typename... Args>
67 internal::select_parameter_type_or_default<internal::ParameterType::source, default_source_buf_type>(
75 internal::select_parameter_type_or_default<internal::ParameterType::tag, default_tag_buf_type>({},
args...);
78 constexpr auto tag_type = std::remove_reference_t<
decltype(
tag_param)>::tag_type;
89 internal::select_parameter_type_or_default<internal::ParameterType::status, default_status_param_type>(
93 .construct_buffer_or_rebind();
101 this->mpi_communicator(),
105 this->mpi_error_hook(
err,
"MPI_Iprobe");
117 return static_cast<bool>(
flag);
Wrapper for MPI functions that don't require a communicator. If the template parameter init_finalize_...
Definition environment.hpp:52
STL-compatible allocator for requesting memory using the builtin MPI allocator.
Definition allocator.hpp:32
auto status(internal::ignore_t< void >)
pass MPI_STATUS_IGNORE to the underlying MPI call.
Definition status_parameters.hpp:52
auto tag(internal::any_tag_t)
Indicates to use MPI_ANY_TAG as tag in the underlying call.
Definition named_parameters.hpp:1064
auto source(int rank)
Passes rank as source rank to the underlying call. This parameter is needed in point-to-point exchang...
Definition named_parameters.hpp:1028
auto iprobe(Args... args) const
Definition iprobe.hpp:61
Template magic to check named parameters passed to wrappers at compile time.
#define KAMPING_REQUIRED_PARAMETERS(...)
Wrapper to pass (possibly empty) list of parameter type names as required parameters to KAMPING_CHECK...
Definition named_parameter_check.hpp:52
#define KAMPING_OPTIONAL_PARAMETERS(...)
Wrapper to pass (possibly empty) list of parameter type names as optional parameters to KAMPING_CHECK...
Definition named_parameter_check.hpp:58
#define KAMPING_CHECK_PARAMETERS(args, required, optional)
Assertion macro that checks if passed parameters are correct, i.e., all parameter types are unique,...
Definition named_parameter_check.hpp:80
Template magic to implement named parameters in cpp.
File containing the parameter types used by the KaMPIng library.
Factory methods for buffer wrappers.
constexpr bool is_extractable
Helper for implementing the extract_* functions in MPIResult. Is true if the passed buffer type owns ...
Definition result.hpp:48
@ value
holds an actual value
constexpr bool is_valid_rank_in_comm(RankDataBufferClass const &rank_data_buffer, Comm const &comm, bool const allow_null=false, bool const allow_any=false)
Checks whether a RankDataBuffer contains a valid rank in the given communicator.
Definition implementation_helpers.hpp:30
auto make_mpi_result(Buffers &&... buffers)
Construct result object for a wrapped MPI call. Four different cases are handled: a) The recv_buffer ...
Definition result.hpp:1017
static MPI_Status * status_param_to_native_ptr(StatusParam ¶m)
returns a pointer to the MPI_Status encapsulated by the provided status parameter object.
Definition parameter_objects.hpp:489
Some functions and types simplifying/enabling the development of wrapped MPI calls in KaMPIng.