Build failure for CommonImplicitArrays when VTK_ABI_NAMESPACE used
If VTK is configured with -D VTK_ABI_NAMESPACE_NAME=vtk9
, then building CommonImplicitArrays gives the following error. The cause might be incorrect placement of VTK_ABI_NAMESPACE_BEGIN
, but I have not been able to figure out where the fix is needed.
System: ubuntu 22.04
Compiler: gcc-9
Building CXX object Common/ImplicitArrays/CMakeFiles/CommonImplicitArrays.dir/vtkAffineArrayInstantiate_char.cxx.o
In file included from /dev/shm/vtk-gitlab/Common/Core/vtkAOSDataArrayTemplate.h:38,
from /dev/shm/vtk-gitlab/Common/Core/vtkDataArrayRange.h:29,
from /dev/shm/vtk-gitlab/Common/Core/vtkDataArrayPrivate.txx:22,
from /dev/shm/vtk-gitlab/Common/ImplicitArrays/vtkAffineArray.h:21,
from /dev/shm/vtk-gitlab-build/Common/ImplicitArrays/vtkAffineArrayInstantiate_char.cxx:16:
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h: In instantiation of ‘class vtk9::vtkGenericDataArray<vtk9::vtkImplicitArray<vtk9::vtkAffineImplicitBackend<char> >, void>’:
/dev/shm/vtk-gitlab/Common/ImplicitArrays/vtkImplicitArray.h:78:7: required from ‘class vtk9::vtkImplicitArray<vtk9::vtkAffineImplicitBackend<char> >’
/dev/shm/vtk-gitlab-build/Common/ImplicitArrays/vtkAffineArrayInstantiate_char.cxx:18:1: required from here
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h:92:3: error: incomplete type ‘vtk9::vtkTypeTraits<void>’ used in nested name specifier
92 | {
| ^
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h:120:8: error: invalid parameter type ‘vtk9::vtkGenericDataArray<vtk9::vtkImplicitArray<vtk9::vtkAffineImplicitBackend<char> >, void>::ValueType’ {aka ‘void’}
120 | void SetValue(vtkIdType valueIdx, ValueType value)
| ^~~~~~~~
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h:120:8: error: in declaration ‘void vtk9::vtkGenericDataArray<DerivedT, ValueTypeT>::SetValue(vtkIdType, vtk9::vtkGenericDataArray<DerivedT, ValueTypeT>::ValueType)’
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h:170:8: error: invalid parameter type ‘vtk9::vtkGenericDataArray<vtk9::vtkImplicitArray<vtk9::vtkAffineImplicitBackend<char> >, void>::ValueType’ {aka ‘void’}
170 | void SetTypedComponent(vtkIdType tupleIdx, int compIdx, ValueType value)
| ^~~~~~~~~~~~~~~~~
/dev/shm/vtk-gitlab/Common/Core/vtkGenericDataArray.h:170:8: error: in declaration ‘void vtk9::vtkGenericDataArray<DerivedT, ValueTypeT>::SetTypedComponent(vtkIdType, int, vtk9::vtkGenericDataArray<DerivedT, ValueTypeT>::ValueType)’