22 #include <type_traits>
25 #define ARILES2_IS_BASE_ENABLER(Base, Derived) \
26 const typename std::enable_if<std::is_base_of<Base, Derived>::value>::type * = nullptr
28 #include "build_config.h"
34 #define ARILES2_EMPTY_MACRO
37 #define ARILES2_BASIC_SIGNED_INTEGER_TYPES_LIST \
38 ARILES2_BASIC_TYPE(int) \
39 ARILES2_BASIC_TYPE(short) \
40 ARILES2_BASIC_TYPE(long) \
41 ARILES2_BASIC_TYPE(long long) \
42 ARILES2_BASIC_TYPE(char)
44 #define ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST_WITHOUT_BYTE \
45 ARILES2_BASIC_TYPE(unsigned int) \
46 ARILES2_BASIC_TYPE(unsigned short) \
47 ARILES2_BASIC_TYPE(unsigned long) \
48 ARILES2_BASIC_TYPE(unsigned long long)
50 #define ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST \
51 ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST_WITHOUT_BYTE \
52 ARILES2_BASIC_TYPE(unsigned char)
55 #define ARILES2_BASIC_INTEGER_TYPES_LIST \
56 ARILES2_BASIC_SIGNED_INTEGER_TYPES_LIST \
57 ARILES2_BASIC_UNSIGNED_INTEGER_TYPES_LIST
59 #define ARILES2_BASIC_REAL_TYPES_LIST \
60 ARILES2_BASIC_TYPE(float) \
61 ARILES2_BASIC_TYPE(double)
63 #define ARILES2_BASIC_NUMERIC_TYPES_LIST \
64 ARILES2_BASIC_INTEGER_TYPES_LIST \
65 ARILES2_BASIC_REAL_TYPES_LIST \
66 ARILES2_BASIC_TYPE(bool)
68 #define ARILES2_COMPLEX_NUMBER_TYPES_LIST \
69 ARILES2_BASIC_TYPE(std::complex<float>) \
70 ARILES2_BASIC_TYPE(std::complex<double>)
72 #define ARILES2_BASIC_TYPES_LIST \
73 ARILES2_BASIC_NUMERIC_TYPES_LIST \
74 ARILES2_BASIC_TYPE(std::string)
77 #define CPPUT_COMPILE_SHARED_LIB
88 template <
class t_Po
inter>
92 template <
class t_Entry>
virtual const std::string & arilesDefaultID() const =0
bool isMissing(const ARILES2_POINTER_TYPE< t_Entry > &entry)
Visibility defines, e.g., https://gcc.gnu.org/wiki/Visibility.