19#ifndef TIMPI_ATTRIBUTES_H
20#define TIMPI_ATTRIBUTES_H
23#include "timpi/timpi_config.h"
26#ifdef TIMPI_DEFAULT_QUADRUPLE_PRECISION
27# include <boost/multiprecision/float128.hpp>
58#define TIMPI_INT_TYPE(cxxtype) \
60 struct Attributes<cxxtype> \
62 static const bool has_min_max = true; \
63 static void set_lowest(cxxtype & x) { x = std::numeric_limits<cxxtype>::min(); } \
64 static void set_highest(cxxtype & x) { x = std::numeric_limits<cxxtype>::max(); } \
67#define TIMPI_FLOAT_TYPE(cxxtype) \
69 struct Attributes<cxxtype> \
71 static const bool has_min_max = true; \
72 static void set_lowest(cxxtype & x) { x = -std::numeric_limits<cxxtype>::infinity(); } \
73 static void set_highest(cxxtype & x) { x = std::numeric_limits<cxxtype>::infinity(); } \
76#define TIMPI_CONTAINER_TYPE(cxxtype) \
77 struct Attributes<cxxtype> \
79 static const bool has_min_max = Attributes<T>::has_min_max; \
80 static void set_lowest(cxxtype & x) { \
81 for (auto & val : x) \
82 Attributes<T>::set_lowest(val); } \
83 static void set_highest(cxxtype & x) { \
84 for (auto & val : x) \
85 Attributes<T>::set_highest(val); } \
104#ifdef TIMPI_DEFAULT_QUADRUPLE_PRECISION
108#define TIMPI_ATTRIBUTES_COMMA ,
110template <
typename T,
typename C,
typename A>
113template <
typename T,
typename A>
TIMPI_CONTAINER_TYPE(std::set< T TIMPI_ATTRIBUTES_COMMA C TIMPI_ATTRIBUTES_COMMA A >)
Tnew cast_int(Told oldvar)
static const bool has_min_max