15 VTK_ABI_NAMESPACE_BEGIN
18 template <
typename Container,
typename StopAtType =
void>
43 VTK_ABI_NAMESPACE_BEGIN
53 template <
typename VTKObjectType>
65 static Yes Test(
typename C::Superclass*);
72 value =
sizeof(Test<VTKObjectType>(
nullptr)) ==
sizeof(Yes)
97 template <
typename VTKObjectType>
100 template <
typename Functor>
103 ff.template operator()<VTKObjectType>();
107 template <
typename VTKObjectType>
111 template <
typename Functor>
112 inline static typename std::enable_if<
113 std::is_same<decltype(std::declval<Functor>().
template operator()<
vtkObject>()),
void>
::value,
117 ff.template operator()<VTKObjectType>();
122 template <
typename Functor>
123 inline static typename std::enable_if<
124 std::is_same<decltype(std::declval<Functor>().
template operator()<
vtkObject>()),
bool>
::value,
128 if (ff.template
operator()<VTKObjectType>())
148 template <
typename VTKObjectType,
typename Container>
155 template <
typename VTKObjectType,
typename StopAtType,
typename Container>
163 VTK_ABI_NAMESPACE_END
166 #endif // vtkInherits_h
abstract base class for most VTK objects
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
static std::enable_if< std::is_same< decltype(std::declval< Functor >).template operator()< vtkObject >)), bool >::value, void >::type enumerate(Functor &ff)
Determine whether the provided class (VTKObjectType ) has a parent class.
static std::enable_if< std::is_same< decltype(std::declval< Functor >).template operator()< vtkObject >)), void >::value, void >::type enumerate(Functor &ff)
Invoke a functor on the named type and each of its parent types.
void Inherits(Container &container)
Populate the container with the name of this class and its ancestors.
static void enumerate(Functor &ff)