35#ifndef NEKTAR_LIB_LIBUTILITES_SIMDLIB_TRAITS_H
36#define NEKTAR_LIB_LIBUTILITES_SIMDLIB_TRAITS_H
57 : std::integral_constant<
59 std::is_same_v<is_aligned_t, typename std::remove_cv<T>::type> ||
60 std::is_same_v<is_not_aligned_t,
61 typename std::remove_cv<T>::type> ||
62 std::is_same_v<is_not_reused_t, typename std::remove_cv<T>::type>>
68 : std::integral_constant<
70 std::is_same_v<is_not_reused_t, typename std::remove_cv<T>::type>>
76 : std::integral_constant<
78 std::is_same_v<is_aligned_t, typename std::remove_cv<T>::type> ||
79 is_streaming<T>::value>
94template <
class T,
class U =
unsigned int>
struct has_width : std::false_type
104template <
class T,
class U =
unsigned int>
135 : std::integral_constant<bool, details::has_alignment<T>::value &&
136 details::has_width<T>::value &&
137 details::has_scalarType<T>::value>
145template <
class T,
class =
void>
153 typename
std::enable_if<is_vector_v<T>>::type>
154 : std::integral_constant<bool,
155 std::is_floating_point_v<typename T::scalarType>>
172 : std::integral_constant<bool, std::is_integral_v<typename T::scalarType>>
typename make_void< Ts... >::type void_t
constexpr bool is_vector_floating_point_v
constexpr bool is_vector_integral_v
constexpr bool is_load_tag_v
static constexpr struct tinysimd::is_aligned_t is_aligned
static constexpr struct tinysimd::is_not_aligned_t is_not_aligned
static constexpr struct tinysimd::is_not_reused_t is_not_reused
constexpr bool is_vector_v
constexpr bool is_streaming_v
constexpr bool is_requiring_alignment_v