mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 10:35:42 +00:00
Merge branch 'msvc-warnings' into 'master'
Fix MSVC warnings Fix your typical batch of MSVC warnings including picky type conversions and using "unsafe" std functions on pointers for iterators. See merge request !333
This commit is contained in:
commit
8cdf2aa7e5
14
vtkm/Types.h
14
vtkm/Types.h
@ -653,10 +653,13 @@ struct BindLeftBinaryOp
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
BindLeftBinaryOp(const T &leftValue, BinaryOpType binaryOp = BinaryOpType())
|
||||
: LeftValue(leftValue), BinaryOp(binaryOp) { }
|
||||
|
||||
template<typename RightT>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
ReturnT operator()(const T &rightValue) const
|
||||
ReturnT operator()(const RightT &rightValue) const
|
||||
{
|
||||
return static_cast<ReturnT>(this->BinaryOp(this->LeftValue, rightValue));
|
||||
return static_cast<ReturnT>(this->BinaryOp(this->LeftValue,
|
||||
static_cast<T>(rightValue)));
|
||||
}
|
||||
};
|
||||
|
||||
@ -669,10 +672,13 @@ struct BindRightBinaryOp
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
BindRightBinaryOp(const T &rightValue, BinaryOpType binaryOp = BinaryOpType())
|
||||
: RightValue(rightValue), BinaryOp(binaryOp) { }
|
||||
|
||||
template<typename LeftT>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
ReturnT operator()(const T &leftValue) const
|
||||
ReturnT operator()(const LeftT &leftValue) const
|
||||
{
|
||||
return static_cast<ReturnT>(this->BinaryOp(leftValue, this->RightValue));
|
||||
return static_cast<ReturnT>(this->BinaryOp(static_cast<T>(leftValue),
|
||||
this->RightValue));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <vtkm/cont/Assert.h>
|
||||
#include <vtkm/cont/CoordinateSystem.h>
|
||||
#include <vtkm/cont/DataSet.h>
|
||||
#include <vtkm/cont/DeviceAdapterSerial.h>
|
||||
|
||||
namespace vtkm {
|
||||
namespace cont {
|
||||
@ -37,9 +38,8 @@ class DataSetBuilderRectilinear
|
||||
void CopyInto(const std::vector<T>& input,
|
||||
vtkm::cont::ArrayHandle<U>& output )
|
||||
{
|
||||
output.Allocate( static_cast<vtkm::Id>(input.size()) );
|
||||
std::copy( input.begin(), input.end(),
|
||||
ArrayPortalToIteratorBegin(output.GetPortalControl()) );
|
||||
DataSetBuilderRectilinear::CopyInto(
|
||||
vtkm::cont::make_ArrayHandle(input), output);
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
@ -48,10 +48,9 @@ class DataSetBuilderRectilinear
|
||||
void CopyInto(const vtkm::cont::ArrayHandle<T>& input,
|
||||
vtkm::cont::ArrayHandle<U>& output )
|
||||
{
|
||||
output.Allocate( input.GetNumberOfValues() );
|
||||
std::copy( ArrayPortalToIteratorBegin(input.GetPortalConstControl()),
|
||||
ArrayPortalToIteratorEnd(input.GetPortalConstControl()),
|
||||
ArrayPortalToIteratorBegin(output.GetPortalControl()) );
|
||||
typedef vtkm::cont::DeviceAdapterAlgorithm<
|
||||
vtkm::cont::DeviceAdapterTagSerial> Algorithm;
|
||||
Algorithm::Copy(input, output);
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
@ -60,9 +59,8 @@ class DataSetBuilderRectilinear
|
||||
void CopyInto(const T* input, vtkm::Id len,
|
||||
vtkm::cont::ArrayHandle<U>& output )
|
||||
{
|
||||
output.Allocate( len );
|
||||
std::copy( input, input+len,
|
||||
output.GetPortalControl().GetIteratorBegin() );
|
||||
DataSetBuilderRectilinear::CopyInto(
|
||||
vtkm::cont::make_ArrayHandle(input, len), output);
|
||||
}
|
||||
public:
|
||||
VTKM_CONT_EXPORT
|
||||
|
@ -24,6 +24,8 @@
|
||||
|
||||
#include <vtkm/cont/ArrayPortalToIterators.h>
|
||||
|
||||
#include "iterator"
|
||||
|
||||
namespace vtkm {
|
||||
namespace io {
|
||||
namespace reader {
|
||||
@ -43,15 +45,20 @@ inline vtkm::cont::ArrayHandle<T> ConcatinateArrayHandles(
|
||||
vtkm::cont::ArrayHandle<T> out;
|
||||
out.Allocate(size);
|
||||
|
||||
typename vtkm::cont::ArrayPortalToIterators<
|
||||
typename vtkm::cont::ArrayHandle<T>::PortalControl>::IteratorType outp =
|
||||
vtkm::cont::ArrayPortalToIteratorBegin(out.GetPortalControl());
|
||||
typedef typename vtkm::cont::ArrayPortalToIterators<
|
||||
typename vtkm::cont::ArrayHandle<T>::PortalControl>::IteratorType
|
||||
IteratorType;
|
||||
IteratorType outp =
|
||||
vtkm::cont::ArrayPortalToIteratorBegin(out.GetPortalControl());
|
||||
for (std::size_t i = 0; i < arrays.size(); ++i)
|
||||
{
|
||||
std::copy(vtkm::cont::ArrayPortalToIteratorBegin(arrays[i].GetPortalConstControl()),
|
||||
vtkm::cont::ArrayPortalToIteratorEnd(arrays[i].GetPortalConstControl()),
|
||||
outp);
|
||||
outp += arrays[i].GetNumberOfValues();
|
||||
typedef typename std::iterator_traits<IteratorType>::difference_type
|
||||
DifferenceType;
|
||||
std::advance(
|
||||
outp, static_cast<DifferenceType>(arrays[i].GetNumberOfValues()));
|
||||
}
|
||||
|
||||
return out;
|
||||
|
Loading…
Reference in New Issue
Block a user