Add exec to ArrayPortalFromIterators constructors

There is no real reason why you cannot construct an
ArrayPortalFromIterators on a device, so go ahead and let that happen.
(This removes some CUDA warnings about calling __host__ from
__device__.)
This commit is contained in:
Kenneth Moreland 2018-07-11 16:47:12 -06:00
parent 91df123055
commit 6d24343c51

@ -53,9 +53,7 @@ public:
using ValueType = typename std::iterator_traits<IteratorT>::value_type;
using IteratorType = IteratorT;
VTKM_SUPPRESS_EXEC_WARNINGS
VTKM_CONT
ArrayPortalFromIterators() {}
ArrayPortalFromIterators() = default;
VTKM_SUPPRESS_EXEC_WARNINGS
VTKM_CONT
@ -80,9 +78,8 @@ public:
/// type that can be copied to this iterator type. This allows us to do any
/// type casting that the iterators do (like the non-const to const cast).
///
VTKM_SUPPRESS_EXEC_WARNINGS
template <class OtherIteratorT>
VTKM_CONT ArrayPortalFromIterators(const ArrayPortalFromIterators<OtherIteratorT>& src)
VTKM_EXEC_CONT ArrayPortalFromIterators(const ArrayPortalFromIterators<OtherIteratorT>& src)
: BeginIterator(src.GetIteratorBegin())
, NumberOfValues(src.GetNumberOfValues())
{
@ -129,7 +126,7 @@ public:
using IteratorType = IteratorT;
VTKM_SUPPRESS_EXEC_WARNINGS
VTKM_CONT
VTKM_EXEC_CONT
ArrayPortalFromIterators()
: BeginIterator(nullptr)
, NumberOfValues(0)
@ -161,7 +158,7 @@ public:
///
VTKM_SUPPRESS_EXEC_WARNINGS
template <class OtherIteratorT>
VTKM_CONT ArrayPortalFromIterators(const ArrayPortalFromIterators<OtherIteratorT>& src)
VTKM_EXEC_CONT ArrayPortalFromIterators(const ArrayPortalFromIterators<OtherIteratorT>& src)
: BeginIterator(src.GetIteratorBegin())
, NumberOfValues(src.GetNumberOfValues())
{