15VTK_ABI_NAMESPACE_BEGIN
18template <
typename Container,
typename StopAtType =
void>
29 if (!std::is_same<StopAtType, T>::value)
31 std::string typeName = vtk::TypeName<T>();
43VTK_ABI_NAMESPACE_BEGIN
53template <
typename VTKObjectType>
65 static Yes Test(
typename C::Superclass*);
72 value =
sizeof(Test<VTKObjectType>(
nullptr)) ==
sizeof(Yes)
94template <typename VTKObjectType, bool IsDerived = HasSuperclass<VTKObjectType>::value>
97template <
typename VTKObjectType>
100 template <
typename Functor>
103 ff.template operator()<VTKObjectType>();
107template <
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>())
148template <
typename VTKObjectType,
typename Container>
155template <
typename VTKObjectType,
typename StopAtType,
typename Container>
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 void ::type enumerate(Functor &ff)
Invoke a functor on the named type and each of its parent types.