25template <ParameterType ptype>
31template <
typename,
typename>
38template <
typename Head,
typename...
Tail>
50template <
typename Predicate>
67 static constexpr bool discard_elem =
70 using type = std::conditional_t<
74 std::integral_constant<parameter_type_t<Head>, ptype>,
99 return internal::select_parameter_type_in_tuple<ptype>(
buffers);
113 std::tuple<Buffers...>&
buffers, std::index_sequence<i...>
115 return std::make_tuple(std::move(
retrieve_buffer<std::tuple_element_t<i, ParameterTypeTuple>::value>(
buffers))...);
135 std::make_index_sequence<num_output_parameters>{}
STL-compatible allocator for requesting memory using the builtin MPI allocator.
Definition allocator.hpp:32
ParameterType
Each input parameter to one of the MPI calls wrapped by KaMPIng needs to has one of the following tag...
Definition named_parameter_types.hpp:33
Template magic to implement named parameters in cpp.
File containing the parameter types used by the KaMPIng library.
Internal namespace marking the code that is not user-facing.
Definition collectives_helpers.hpp:20
auto construct_buffer_tuple_impl(std::tuple< Buffers... > &buffers, std::index_sequence< i... >)
Construct tuple containing all buffers specified in.
Definition named_parameter_filtering.hpp:112
auto & retrieve_buffer(std::tuple< Buffers... > &buffers)
Retrieve the buffer with requested ParameterType from the std::tuple containg all buffers.
Definition named_parameter_filtering.hpp:98
auto construct_buffer_tuple(Buffers &&... buffers)
Construct tuple containing all buffers specified in.
Definition named_parameter_filtering.hpp:127
std::conditional_t< discard_elem, typename FilterOut< Predicate, Tail... >::type, typename PrependType< std::integral_constant< parameter_type_t< Head >, ptype >, typename FilterOut< Predicate, Tail... >::type >::type > type
Definition named_parameter_filtering.hpp:70
std::remove_reference_t< Head > non_ref_first
Remove potential reference from Head.
Definition named_parameter_filtering.hpp:66
typename FilterOut< Predicate, Types... >::type type
Definition named_parameter_filtering.hpp:86
std::tuple<> type
Tuple of types meeting the specified criteria.
Definition named_parameter_filtering.hpp:52
Base template used to filter a list of types and only keep those whose types meet specified criteria....
Definition named_parameter_filtering.hpp:46
Wrapper class to store an enum entry (kamping::internal::ParameterType) in a separate type (so that i...
Definition named_parameter_filtering.hpp:26
static constexpr ParameterType parameter_type
ParameterType to be stored in this type.
Definition named_parameter_filtering.hpp:27
std::tuple< Head, Tail... > type
tuple with prepended Head type.
Definition named_parameter_filtering.hpp:40
Base template used to concatenate a type to a given std::tuple. based on https://stackoverflow....
Definition named_parameter_filtering.hpp:32