mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 02:25:42 +00:00
Fix MSVC compiler warnings
Generally, the MSVC compiler tends to be more picky about implicit type conversions. It warns if there is any possibility of precision loss.
This commit is contained in:
parent
a7e6666037
commit
7cf25331e2
49
vtkm/Types.h
49
vtkm/Types.h
@ -296,7 +296,7 @@ struct AssignScalarToVec<4>
|
||||
}
|
||||
};
|
||||
|
||||
template<vtkm::IdComponent Size>
|
||||
template<typename CType, vtkm::IdComponent Size>
|
||||
struct VecCopy
|
||||
{
|
||||
template<typename T1, typename T2>
|
||||
@ -306,54 +306,54 @@ struct VecCopy
|
||||
componentIndex < Size;
|
||||
componentIndex++)
|
||||
{
|
||||
dest[componentIndex] = src[componentIndex];
|
||||
dest[componentIndex] = CType(src[componentIndex]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct VecCopy<1>
|
||||
template<typename CType>
|
||||
struct VecCopy<CType, 1>
|
||||
{
|
||||
template<typename T1, typename T2>
|
||||
VTKM_EXEC_CONT_EXPORT void operator()(T1 &dest, const T2 &src)
|
||||
{
|
||||
dest[0] = src[0];
|
||||
dest[0] = CType(src[0]);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct VecCopy<2>
|
||||
template<typename CType>
|
||||
struct VecCopy<CType, 2>
|
||||
{
|
||||
template<typename T1, typename T2>
|
||||
VTKM_EXEC_CONT_EXPORT void operator()(T1 &dest, const T2 &src)
|
||||
{
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[0] = CType(src[0]);
|
||||
dest[1] = CType(src[1]);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct VecCopy<3>
|
||||
template<typename CType>
|
||||
struct VecCopy<CType, 3>
|
||||
{
|
||||
template<typename T1, typename T2>
|
||||
VTKM_EXEC_CONT_EXPORT void operator()(T1 &dest, const T2 &src)
|
||||
{
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
dest[0] = CType(src[0]);
|
||||
dest[1] = CType(src[1]);
|
||||
dest[2] = CType(src[2]);
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct VecCopy<4>
|
||||
template<typename CType>
|
||||
struct VecCopy<CType, 4>
|
||||
{
|
||||
template<typename T1, typename T2>
|
||||
VTKM_EXEC_CONT_EXPORT void operator()(T1 &dest, const T2 &src)
|
||||
{
|
||||
dest[0] = src[0];
|
||||
dest[1] = src[1];
|
||||
dest[2] = src[2];
|
||||
dest[3] = src[3];
|
||||
dest[0] = CType(src[0]);
|
||||
dest[1] = CType(src[1]);
|
||||
dest[2] = CType(src[2]);
|
||||
dest[3] = CType(src[3]);
|
||||
}
|
||||
};
|
||||
|
||||
@ -730,21 +730,24 @@ protected:
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
explicit VecBase(const ComponentType* values)
|
||||
{
|
||||
vtkm::internal::VecCopy<NUM_COMPONENTS>()(this->Components, values);
|
||||
vtkm::internal::VecCopy<ComponentType,NUM_COMPONENTS>()(
|
||||
this->Components, values);
|
||||
}
|
||||
|
||||
template<typename OtherValueType, typename OtherDerivedType>
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
VecBase(const VecBase<OtherValueType,Size,OtherDerivedType> &src)
|
||||
{
|
||||
vtkm::internal::VecCopy<NUM_COMPONENTS>()(this->Components, src);
|
||||
vtkm::internal::VecCopy<ComponentType,NUM_COMPONENTS>()(
|
||||
this->Components, src);
|
||||
}
|
||||
|
||||
public:
|
||||
VTKM_EXEC_CONT_EXPORT
|
||||
DerivedClass &operator=(const DerivedClass &src)
|
||||
{
|
||||
vtkm::internal::VecCopy<NUM_COMPONENTS>()(this->Components, src);
|
||||
vtkm::internal::VecCopy<ComponentType,NUM_COMPONENTS>()(
|
||||
this->Components, src);
|
||||
return *reinterpret_cast<DerivedClass *>(this);
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ struct TemplatedTests
|
||||
{
|
||||
ValueType array[ARRAY_SIZE];
|
||||
|
||||
static const ComponentType ORIGINAL_VALUE = 239;
|
||||
static const ComponentType ORIGINAL_VALUE = 109;
|
||||
FillIterator(array, array+ARRAY_SIZE, ORIGINAL_VALUE);
|
||||
|
||||
::vtkm::cont::internal::ArrayPortalFromIterators<ValueType *>
|
||||
|
@ -72,7 +72,7 @@ struct TemplatedTests
|
||||
return CheckIterator(iterators.GetBegin(), iterators.GetEnd(), value);
|
||||
}
|
||||
|
||||
ComponentType ORIGINAL_VALUE() { return 239; }
|
||||
ComponentType ORIGINAL_VALUE() { return 39; }
|
||||
|
||||
template<class ArrayPortalType>
|
||||
void TestIteratorRead(ArrayPortalType portal)
|
||||
|
@ -437,7 +437,7 @@ private:
|
||||
Sleep(1000);
|
||||
#endif
|
||||
|
||||
vtkm::FloatDefault elapsedTime = timer.GetElapsedTime();
|
||||
vtkm::Float64 elapsedTime = timer.GetElapsedTime();
|
||||
|
||||
std::cout << "Elapsed time: " << elapsedTime << std::endl;
|
||||
|
||||
|
@ -43,7 +43,9 @@ const vtkm::Id ARRAY_SIZE = DIMENSION[0]*DIMENSION[1]*DIMENSION[2];
|
||||
vtkm::Vec<vtkm::FloatDefault,3> TestValue(vtkm::Id index)
|
||||
{
|
||||
vtkm::Id3 index3d = vtkm::ExtentPointFlatIndexToTopologyIndex(index, EXTENT);
|
||||
return vtkm::Vec<vtkm::FloatDefault,3>(index3d[0], index3d[1], index3d[2]);
|
||||
return vtkm::make_Vec(vtkm::FloatDefault(index3d[0]),
|
||||
vtkm::FloatDefault(index3d[1]),
|
||||
vtkm::FloatDefault(index3d[2]));
|
||||
}
|
||||
|
||||
int g_CheckArrayInvocations;
|
||||
|
@ -57,7 +57,9 @@ struct StorageListTag : vtkm::cont::StorageListTagBasic { };
|
||||
vtkm::Vec<vtkm::FloatDefault,3> TestValue(vtkm::Id index)
|
||||
{
|
||||
vtkm::Id3 index3d = vtkm::ExtentPointFlatIndexToTopologyIndex(index, EXTENT);
|
||||
return vtkm::Vec<vtkm::FloatDefault,3>(index3d[0], index3d[1], index3d[2]);
|
||||
return vtkm::make_Vec(vtkm::FloatDefault(index3d[0]),
|
||||
vtkm::FloatDefault(index3d[1]),
|
||||
vtkm::FloatDefault(index3d[2]));
|
||||
}
|
||||
|
||||
struct CheckArray
|
||||
|
@ -243,7 +243,7 @@ struct DynamicTransformFinish
|
||||
struct ForEachFunctor
|
||||
{
|
||||
template<typename T>
|
||||
void operator()(T &x) const { x = 2*x; }
|
||||
void operator()(T &x) const { x = T(2)*x; }
|
||||
|
||||
void operator()(std::string &x) const { x.append("*2"); }
|
||||
};
|
||||
@ -436,14 +436,14 @@ void TestForEach()
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<1>() == 2*Arg1, "Arg 1 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<2>() == 2*Arg2, "Arg 2 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<3>() == Arg3+"*2", "Arg 3 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<4>() == 2*Arg4, "Arg 4 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<4>() == 2.0f*Arg4, "Arg 4 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<5>() == 2*Arg5, "Arg 5 incorrect.");
|
||||
|
||||
funcInterface.ForEachExec(ForEachFunctor());
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<1>() == 4*Arg1, "Arg 1 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<2>() == 4*Arg2, "Arg 2 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<3>() == Arg3+"*2*2", "Arg 3 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<4>() == 4*Arg4, "Arg 4 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<4>() == 4.0f*Arg4, "Arg 4 incorrect.");
|
||||
VTKM_TEST_ASSERT(funcInterface.GetParameter<5>() == 4*Arg5, "Arg 5 incorrect.");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user