I am getting the following errors from vtkm when building ParaView superbuild for ParaView 5.8.0-RC1
with gcc 4.8.5 on RHEL 7.7.
There seems to have been an attempt to fix this error in ArrayPortalToIterators.h
Since the last change in the git history is
ArrayPortalToIterators now compiles with GCC-4.X
But it is still throwing the following error for me.
/home/joeh/PV/Build_5.8.0-RC1_mesa/superbuild/paraview/src/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/ArrayPortalToIterators.h:90:34: error: using invalid field ‘vtkm::cont::ArrayPortalToIterators<PortalType, void>::Begin’
/home/joeh/PV/Build_5.8.0-RC1_mesa/superbuild/paraview/src/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/ArrayPortalToIterators.h:90:34: error: ‘const class vtkm::ArrayPortalRef<vtkm::Vec<float, 3> >’ has no member named ‘GetIteratorBegin’
/home/joeh/PV/Build_5.8.0-RC1_mesa/superbuild/paraview/src/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/ArrayPortalToIterators.h:90:34: error: using invalid field ‘vtkm::cont::ArrayPortalToIterators<PortalType, void>::End’
/home/joeh/PV/Build_5.8.0-RC1_mesa/superbuild/paraview/src/VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/vtkm/cont/ArrayPortalToIterators.h:90:34: error: ‘const class vtkm::ArrayPortalRef<vtkm::Vec<float, 3> >’ has no member named ‘GetIteratorEnd’
/// Implementation of std::void_t (C++17):
/// Allows for specialization of class templates based on members of template
/// parameters. #if defined(VTKM_GCC) && (GNUC < 5)
// Due to a defect in the wording (CWG 1558) unused parameters in alias templates
// were not guaranteed to ensure SFINAE, and therefore would consider everything
// to match the ‘true’ side. For VTK-m the only known compiler that implemented
// this defect is GCC < 5.
template <class… T>
struct void_pack
{
using type = void;
};
template <class… T>
using void_t = typename void_pack<T…>::type; #else
template <typename…>
using void_t = void; #endif