KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
|
Parameter object representing a data buffer to be allocated by KaMPIng. This is a specialization of DataBufferBuilder for buffer allocation tags, such as alloc_new, alloc_new_using and alloc_container_of. This is an intermediate object not holding any data. The actual buffer is constructed by calling the construct_buffer_or_rebind()
method.
More...
#include <parameter_objects.hpp>
Public Types | |
using | DataBufferType |
The type of the constructed data buffer (potentially rebinded to std::vector). | |
using | value_type = typename DataBufferType::value_type |
The constructed data buffer's value type. | |
Public Member Functions | |
template<template< typename... > typename RebindContainerType = UnusedRebindContainer, typename Flag = void> | |
auto | construct_buffer_or_rebind () |
Constructs the data buffer. | |
size_t | size () const |
The size of the underlying container. | |
Static Public Attributes | |
static constexpr ParameterType | parameter_type = parameter_type_param |
The parameter type. | |
static constexpr bool | is_out_buffer |
static constexpr bool | is_owning |
Indicates whether the buffer owns its underlying storage. | |
static constexpr bool | is_lib_allocated |
Indicates whether the buffer is allocated by KaMPIng. | |
static constexpr bool | is_single_element |
Indicated whether the buffer is a single element buffer. | |
Parameter object representing a data buffer to be allocated by KaMPIng. This is a specialization of DataBufferBuilder for buffer allocation tags, such as alloc_new, alloc_new_using and alloc_container_of. This is an intermediate object not holding any data. The actual buffer is constructed by calling the construct_buffer_or_rebind()
method.
This type should be constructed using the factory methods make_data_buffer_builder.
AllocType | A tag type indicating what kind of buffer should be allocated. see alloc_new, alloc_new_using and alloc_container_of. |
using kamping::internal::AllocNewDataBufferBuilder< AllocType, ValueType, parameter_type_param, modifiability, buffer_type, buffer_resize_policy >::DataBufferType |
The type of the constructed data buffer (potentially rebinded to std::vector).
|
inline |
Constructs the data buffer.
RebindContainerType | The container to use for constructing the data buffer. This parameter is ignored if the buffer allocation trait is alloc_new or alloc_new_using. In case of alloc_container_of<U> , the created data buffer encapsulated a RebindContainerType<U> . |
Flag | A tag type indicating special behavior, e.g., serialization support ( |
void
.
|
staticconstexpr |
Indicates whether the buffer is allocated by KaMPIng.
|
staticconstexpr |
true
if the buffer is an out or in/out buffer that results will be written to and false
otherwise.
|
staticconstexpr |
Indicates whether the buffer owns its underlying storage.
|
staticconstexpr |
Indicated whether the buffer is a single element buffer.