VTK-m
2.2
|
#include <vtkm/cont/vtkm_cont_export.h>
#include <vtkm/Assert.h>
#include <vtkm/Flags.h>
#include <vtkm/Types.h>
#include <vtkm/cont/DeviceAdapterList.h>
#include <vtkm/cont/ErrorBadValue.h>
#include <vtkm/cont/ErrorInternal.h>
#include <vtkm/cont/Storage.h>
#include <vtkm/cont/Token.h>
#include <vtkm/internal/ArrayPortalHelpers.h>
#include <algorithm>
#include <deque>
#include <iterator>
#include <memory>
#include <mutex>
#include <vector>
#include <vtkm/cont/internal/Buffer.h>
#include <vtkm/cont/ArrayHandleBasic.h>
Go to the source code of this file.
Classes | |
struct | vtkm::cont::StorageTagBasic |
A tag for the basic implementation of a Storage object. More... | |
class | vtkm::cont::ArrayHandle< T, StorageTag_ > |
Manages an array-worth of data. More... | |
Namespaces | |
vtkm | |
Groups connected points that have the same field value. | |
vtkm::cont | |
VTK-m Control Environment. | |
Macros | |
#define | VTKM_IS_ARRAY_HANDLE(T) VTKM_STATIC_ASSERT(::vtkm::cont::internal::ArrayHandleCheck<T>{}) |
Checks that the given type is a vtkm::cont::ArrayHandle . More... | |
#define | VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename__) |
#define | VTKM_ARRAY_HANDLE_SUBCLASS(classname, fullclasstype, superclass) VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename) |
Macro to make default methods in ArrayHandle subclasses. More... | |
#define | VTKM_ARRAY_HANDLE_SUBCLASS_NT(classname, superclass) VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, (classname), superclass, ) |
Macro to make default methods in ArrayHandle subclasses. More... | |
Functions | |
template<typename T , typename StorageT > | |
void | vtkm::cont::printSummary_ArrayHandle (const vtkm::cont::ArrayHandle< T, StorageT > &array, std::ostream &out, bool full=false) |
#define VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL | ( | classname, | |
fullclasstype, | |||
superclass, | |||
typename__ | |||
) |
#define VTKM_ARRAY_HANDLE_SUBCLASS | ( | classname, | |
fullclasstype, | |||
superclass | |||
) | VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, fullclasstype, superclass, typename) |
Macro to make default methods in ArrayHandle subclasses.
This macro defines the default constructors, destructors and assignment operators for ArrayHandle subclasses that are templates. The ArrayHandle subclasses are assumed to be empty convenience classes. The macro should be defined after a public:
declaration.
This macro takes three arguments. The first argument is the classname. The second argument is the full class type. The third argument is the superclass type (either ArrayHandle
or another sublcass). Because C macros do not handle template parameters very well (the preprocessor thinks the template commas are macro argument commas), the second and third arguments must be wrapped in parentheses.
This macro also defines a Superclass typedef as well as ValueType and StorageTag.
Note that this macro only works on ArrayHandle subclasses that are templated. For ArrayHandle sublcasses that are not templates, use VTKM_ARRAY_HANDLE_SUBCLASS_NT.
#define VTKM_ARRAY_HANDLE_SUBCLASS_NT | ( | classname, | |
superclass | |||
) | VTK_M_ARRAY_HANDLE_SUBCLASS_IMPL(classname, (classname), superclass, ) |
Macro to make default methods in ArrayHandle subclasses.
This macro defines the default constructors, destructors and assignment operators for ArrayHandle subclasses that are not templates. The ArrayHandle subclasses are assumed to be empty convenience classes. The macro should be defined after a public:
declaration.
This macro takes two arguments. The first argument is the classname. The second argument is the superclass type (either ArrayHandle
or another sublcass). Because C macros do not handle template parameters very well (the preprocessor thinks the template commas are macro argument commas), the second argument must be wrapped in parentheses.
This macro also defines a Superclass typedef as well as ValueType and StorageTag.
Note that this macro only works on ArrayHandle subclasses that are not templated. For ArrayHandle sublcasses that are templates, use VTKM_ARRAY_HANDLE_SUBCLASS.
#define VTKM_IS_ARRAY_HANDLE | ( | T | ) | VTKM_STATIC_ASSERT(::vtkm::cont::internal::ArrayHandleCheck<T>{}) |
Checks that the given type is a vtkm::cont::ArrayHandle
.
If the type is not a vtkm::cont::ArrayHandle
or a subclass, a static assert will cause a compile exception. This is a good way to ensure that a template argument that is assumed to be an array handle type actually is.