11#ifndef __stir_typetraits_H__
12#define __stir_typetraits_H__
48struct has_method_foo<T, typename =
void> : std::false_type {};
49struct has_method_foo<T, std::void_t<decltype(std::declval<T>().foo())>> : std::true_type {};
54template <
typename T,
typename =
void>
60struct has_iterator<T, std::void_t<typename T::iterator>> : std::true_type
69template <
typename T,
typename =
void>
75struct has_full_iterator<T, std::void_t<typename T::full_iterator>> : std::true_type
basic configuration include file
constexpr bool has_full_iterator_v
Bool set to has_full_iterator<T>::value.
Definition type_traits.h:81
constexpr bool has_iterator_and_no_full_iterator_v
Bool set to has_iterator_and_no_full_iterator<T>::value.
Definition type_traits.h:91
constexpr bool has_iterator_v
Bool set to has_iterator<T>::value.
Definition type_traits.h:66
Helper to check if a type has a full_iterator typedef (e.g. Array<2,int>)
Definition type_traits.h:71
Helper to check if the type has an iterator but no full_iterator typedef (e.g. std::vector<int>)
Definition type_traits.h:86
Helper to check if a type has an iterator typedef.
Definition type_traits.h:56