KaMPIng 0.2.1
(Near) zero-overhead MPI wrapper for C++
Loading...
Searching...
No Matches
struct_type.hpp File Reference

Struct-like MPI type construction via field reflection. More...

#include <tuple>
#include <type_traits>
#include <utility>
#include <mpi.h>
#include "kamping/kassert/kassert.hpp"
#include "kamping/types/builtin_types.hpp"
#include "kamping/types/detail/type_helpers.hpp"
#include "kamping/types/mpi_type_traits.hpp"
Include dependency graph for struct_type.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kamping::types::kamping_tag
 Tag used for indicating that a struct is reflectable. More...
 
struct  kamping::types::struct_type< T, Lookup >
 Constructs an MPI_Datatype for a struct-like type. More...
 

Namespaces

namespace  kamping::internal
 Internal namespace marking the code that is not user-facing.
 

Functions

template<typename T , typename F , size_t... Is>
void kamping::internal::for_each_tuple_field (T &&t, F &&f, std::index_sequence< Is... >)
 Applies functor f to each field of the tuple with an index in index sequence Is.
 
template<typename T , typename F >
void kamping::internal::for_each_tuple_field (T &t, F &&f)
 Applies functor f to each field of the tuple t.
 
template<typename T , typename F >
void kamping::internal::for_each_field (T &t, F &&f)
 Applies functor f to each field of the tuple-like type t. Works for std::pair and std::tuple. If KaMPIng's reflection support is enabled, also works with types reflectable via pfr.
 

Variables

template<typename T >
constexpr size_t kamping::internal::tuple_size
 The number of elements in a tuple-like type.
 

Detailed Description

Struct-like MPI type construction via field reflection.