11 #define vtkInheritanceHierarchyBodyMacro(thisClass) \
13 std::vector<vtkStringToken> result; \
14 vtk::Inherits<thisClass>(result); \
23 #define vtkInheritanceHierarchyBaseMacro(thisClass) \
24 virtual std::vector<vtkStringToken> InheritanceHierarchy() \
25 const vtkInheritanceHierarchyBodyMacro(thisClass)
27 #define vtkInheritanceHierarchyOverrideMacro(thisClass) \
28 std::vector<vtkStringToken> InheritanceHierarchy() \
29 const override vtkInheritanceHierarchyBodyMacro(thisClass)
36 VTK_ABI_NAMESPACE_BEGIN
39 template <
typename Container,
typename StopAtType =
void>
64 VTK_ABI_NAMESPACE_BEGIN
74 template <
typename VTKObjectType>
86 static Yes Test(
typename C::Superclass*);
93 value =
sizeof(Test<VTKObjectType>(
nullptr)) ==
sizeof(Yes)
118 template <
typename VTKObjectType>
121 template <
typename Functor>
124 ff.template operator()<VTKObjectType>();
128 template <
typename VTKObjectType>
132 template <
typename Functor>
133 inline static typename std::enable_if<
134 std::is_same<decltype(std::declval<Functor>().template operator()<
vtkObject>()),
void>
::value,
138 ff.template operator()<VTKObjectType>();
143 template <
typename Functor>
144 inline static typename std::enable_if<
145 std::is_same<decltype(std::declval<Functor>().template operator()<
vtkObject>()),
bool>
::value,
149 if (ff.template
operator()<VTKObjectType>())
169 template <
typename VTKObjectType,
typename Container>
176 template <
typename VTKObjectType,
typename StopAtType,
typename Container>
184 VTK_ABI_NAMESPACE_END
abstract base class for most VTK objects
Determine whether the provided class (VTKObjectType ) has a parent class.
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
void Inherits(Container &container)
Populate the container with the name of this class and its ancestors.
static void enumerate(Functor &ff)
static std::enable_if< std::is_same< decltype(std::declval< Functor >).template operator()<vtkObject >)), void >::value, void >::type enumerate(Functor &ff)
static std::enable_if< std::is_same< decltype(std::declval< Functor >).template operator()<vtkObject >)), bool >::value, void >::type enumerate(Functor &ff)
Invoke a functor on the named type and each of its parent types.