39 template <
typename T,
typename Enable =
void>
struct _regular {
44 template <
typename T>
struct _regular<T, std::void_t<typename T::regular_type>> {
45 using type =
typename T::regular_type;
55 template <
typename T>
using regular_t =
typename detail::_regular<std::decay_t<T>>::type;
73 if (errcode != MPI_SUCCESS)
throw std::runtime_error(
"MPI error " + std::to_string(errcode) +
" in MPI routine " + mpi_routine);
A concept that checks if a range type is contiguous and sized.
typename detail::_regular< std::decay_t< T > >::type regular_t
Type trait to get the regular type of a type.
void check_mpi_call(int errcode, const std::string &mpi_routine)
Check the success of an MPI call.