813f5a422f
The convenience functions `ArrayPortalToIteratorBegin()` and `ArrayPortalToIteratorEnd()` wouldn't detect specializations of `ArrayPortalToIterators<PortalType>` since the specializations aren't visible when the `Begin`/`End` functions are declared. Since the CUDA iterators rely on a specialization, the convenience functions would not compile on CUDA. Now, instead of specializing `ArrayPortalToIterators` to provide custom iterators for a particular portal, the portal may advertise custom iterators by defining `IteratorType`, `GetIteratorBegin()`, and `GetIteratorEnd()`. `ArrayPortalToIterators` will detect such portals and automatically switch to using the specialized portals. This eliminates the need for the specializations to be visible to the convenience functions and allows them to be usable on CUDA. |
||
---|---|---|
.. | ||
arg | ||
cuda | ||
internal | ||
openmp | ||
serial | ||
tbb | ||
testing | ||
AtomicArrayExecutionObject.h | ||
BoundaryState.h | ||
CellDerivative.h | ||
CellEdge.h | ||
CellFace.h | ||
CellInside.h | ||
CellInterpolate.h | ||
CellLocator.h | ||
CellLocatorBoundingIntervalHierarchyExec.h | ||
CellLocatorRectilinearGrid.h | ||
CellLocatorUniformGrid.h | ||
CellMeasure.h | ||
CMakeLists.txt | ||
ColorTable.h | ||
ColorTable.hxx | ||
ConnectivityExplicit.h | ||
ConnectivityExtrude.h | ||
ConnectivityPermuted.h | ||
ConnectivityStructured.h | ||
ExecutionWholeArray.h | ||
FieldNeighborhood.h | ||
FunctorBase.h | ||
ParametricCoordinates.h | ||
PointLocator.h | ||
PointLocatorUniformGrid.h | ||
TaskBase.h |