28 #ifndef INCLUDED_MDDS_GLOBAL_HPP
29 #define INCLUDED_MDDS_GLOBAL_HPP
35 #include <type_traits>
47 #define MDDS_ASCII(literal) literal, sizeof(literal) - 1
57 #define MDDS_N_ELEMENTS(name) sizeof(name) / sizeof(name[0])
60 #define MDDS_DEPRECATED __attribute__((deprecated))
61 #elif defined(_MSC_VER)
62 #define MDDS_DEPRECATED __declspec(deprecated)
64 #define MDDS_DEPRECATED
67 #ifndef MDDS_LOOP_UNROLLING
68 #define MDDS_LOOP_UNROLLING 1
71 #ifndef MDDS_USE_OPENMP
72 #define MDDS_USE_OPENMP 0
75 #if defined(__AVX__) || defined(__AVX2__)
91 virtual const char* what()
const noexcept
137 static y_type test(
typename U::value_type);
139 static n_type test(...);
142 static constexpr
bool value =
sizeof(test<T>(0)) ==
sizeof(y_type);
145 template<
typename T,
typename IsConst>
151 using type =
typename std::add_const<T>::type;
160 template<
typename T,
bool Const>
163 template<
typename T,
typename Mutable>
175 using type =
typename std::add_const<T>::type;
178 template<
typename T,
bool Mutable>
181 template<
typename T,
typename IsConst>
187 using type =
typename T::const_iterator;
193 using type =
typename T::iterator;
197 constexpr
bool invalid_static_int()
202 template<
typename T,
typename =
void>
208 struct is_complete<T, std::void_t<decltype(sizeof(T) != 0)>> : std::true_type
Definition: global.hpp:107
Definition: global.hpp:131
Definition: global.hpp:114
Definition: global.hpp:203
Definition: global.hpp:100
Definition: global.hpp:182
Definition: global.hpp:83
Definition: global.hpp:146
Definition: global.hpp:164
Definition: flat_segment_tree.hpp:46
Definition: global.hpp:121