4 #ifndef vtkImplicitArrayTraits_h
5 #define vtkImplicitArrayTraits_h
40 VTK_ABI_NAMESPACE_BEGIN
42 template <
typename... Ts>
48 template <
typename... Ts>
56 template <
typename,
typename =
void>
63 :
public has_map_trait<decltype(&std::remove_reference<T>::type::map)>
78 template <
typename R,
typename T,
typename Arg>
83 template <
typename R,
typename Arg>
87 static constexpr
bool value =
true;
97 template <
typename,
typename =
void>
102 template <
typename Closure>
109 template <
typename Closure>
114 template <
typename Closure>
119 template <
typename Closure>
124 template <
typename Closure,
typename R,
typename Arg>
129 template <
typename R,
typename Arg>
134 template <
typename R,
typename Arg>
148 template <
typename,
typename =
void>
153 template <
typename T>
160 template <
typename T>
165 template <
typename T>
170 template <
typename T,
typename ArgIdx,
typename ArgTup>
176 template <
typename ArgIdx,
typename ArgTup>
190 template <
typename,
typename =
void>
195 template <
typename T>
202 template <
typename T>
207 template <
typename T>
212 template <
typename R,
typename T,
typename ArgTupIdx,
typename ArgCompIdx>
218 template <
typename R,
typename ArgTupIdx,
typename ArgCompIdx>
250 template <
typename T,
typename =
void>
254 static constexpr
bool value =
false;
259 template <
typename T>
274 template <
typename T,
typename =
void>
278 static constexpr
bool value =
false;
283 template <
typename T>
298 template <
typename T,
typename =
void>
302 static constexpr
bool value =
false;
306 template <
typename T>
320 template <
typename T,
typename =
void>
324 static constexpr
bool value =
false;
328 template <
typename T>
342 template <
typename,
typename =
void>
347 template <
typename T>
349 void_t<decltype(&std::remove_reference<T>::type::getMemorySize)>>
356 template <
typename T>
361 template <
typename T>
372 template <
typename T>
379 using rtype =
typename trait::rtype;
387 VTK_ABI_NAMESPACE_END
ReadOperatorCodes
An enum for formalizing the different trait types accepted for defining a "readable" object.
typename make_void< Ts... >::type void_t
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
typename is_closure_trait< T >::rtype rtype
An intermediate trait for exposing a unified trait interface.
static constexpr bool value
static constexpr iarrays::ReadOperatorCodes code
used to check whether the template type has a method named getMemorySize
typename has_map_component_trait< T >::rtype rtype
An intermediate trait for exposing a unified trait interface.
static constexpr bool value
typename has_map_trait< T >::rtype rtype
An intermediate trait for exposing a unified trait interface.
static constexpr bool value
static constexpr iarrays::ReadOperatorCodes code
typename has_map_tuple_trait< T >::rtype rtype
An intermediate trait for exposing a unified trait interface.
static constexpr bool value
used to check whether the template type has a method named mapComponent
used to check whether the template type has a method named map
used to check whether the template type has a method named mapTuple
A composite trait for handling all the different capabilities a "backend" to an implicit array can ha...
static constexpr bool can_read
static constexpr bool can_direct_read_component
static constexpr iarrays::ReadOperatorCodes code
static constexpr bool can_direct_read_tuple
typename std::conditional< can_map_trait< T >::value, can_map_trait< T >, can_close_trait< T > >::type trait
static constexpr bool can_get_memory_size
static constexpr bool default_constructible
typename trait::rtype rtype
A trait determining whether an object acts like a mono-variable integer closure.