20#ifndef vtkStdFunctionArray_h
21#define vtkStdFunctionArray_h
23#include "vtkCommonCoreModule.h"
29VTK_ABI_NAMESPACE_BEGIN
30template <
class ValueTypeT>
49 using typename Superclass::ValueType;
59#if defined(__VTK_WRAP__) || defined(__WRAP_GCCXML__)
93#define vtkCreateStdFunctionWrappedArrayInterface(T) \
94 vtkCreateImplicitWrappedArrayInterface(T); \
95 void ConstructBackend(std::function<T(int)> func);
103#ifdef VTK_STD_FUNCTION_ARRAY_INSTANTIATING
104#define VTK_STD_FUNCTION_ARRAY_INSTANTIATE(T) \
105 namespace vtkDataArrayPrivate \
107 VTK_ABI_NAMESPACE_BEGIN \
108 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkStdFunctionArray<T>, double); \
109 VTK_ABI_NAMESPACE_END \
111 VTK_ABI_NAMESPACE_BEGIN \
112 template class VTKCOMMONCORE_EXPORT vtkStdFunctionArray<T>; \
113 VTK_ABI_NAMESPACE_END
117#define VTK_STD_FUNCTION_ARRAY_INSTANTIATE_VALUERANGE(T) \
118 namespace vtkDataArrayPrivate \
120 VTK_ABI_NAMESPACE_BEGIN \
121 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkStdFunctionArray<T>, T); \
122 VTK_ABI_NAMESPACE_END \
124#elif defined(VTK_USE_EXTERN_TEMPLATE)
125#ifndef VTK_STD_FUNCTION_ARRAY_EXTERN
126#define VTK_STD_FUNCTION_ARRAY_EXTERN
131#pragma warning(disable : 4910)
133VTK_ABI_NAMESPACE_BEGIN
139VTK_ABI_NAMESPACE_BEGIN
170#elif defined(_MSC_VER) && !defined(VTK_BUILD_SHARED_LIBS)
174#pragma warning(disable : 4091)
177#pragma warning(disable : 4231)
190#pragma warning(disable : 4910)
194VTK_ABI_NAMESPACE_BEGIN
Abstract superclass for all arrays.
std::integral_constant< int, VTK_OPAQUE > DataTypeTag
std::integral_constant< int, vtkArrayTypes::VTK_ABSTRACT_ARRAY > ArrayTypeTag
A utility array for wrapping std::function in implicit arrays.
vtkStdFunctionArray< ValueTypeT > SelfType
~vtkStdFunctionArray() override=default
static vtkStdFunctionArray * New()
void ConstructBackend(std::function< ValueType(int)> func)
Set the std::function to be used as backend.
vtkImplicitArrayTypeMacro(SelfType, ImplicitArrayType)
vtkStdFunctionArray()=default
static vtkStdFunctionArray< ValueType > * FastDownCast(vtkAbstractArray *source)
A faster alternative to SafeDownCast for downcasting vtkAbstractArrays.
#define vtkArrayDownCast_TemplateFastCastMacro(ArrayT)
Same as vtkArrayDownCast_FastCastMacro, but treats ArrayT as a single-parameter template (the paramet...
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_DEPRECATED_IN_9_7_0(reason)
#define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)
#define vtkCreateImplicitWrappedArrayInterface(T)
#define vtkExternTemplateMacro(decl)
A macro to declare extern templates for all numerical types.
#define vtkInstantiateTemplateMacro(decl)
A macro to instantiate a template over all numerical types.