ParaView master does not compile anymore with VTK_ALL_NEW_OBJECT_FACTORY=TRUE
ParaView does not compile anymore since a recent change !1573 (merged)
Here are the compilation errors:
> In file included from /home/joachim/dev/paraview2/ParaViewCore/ServerManager/Rendering/vtkPVComparativeView.cxx:22:0:
> /home/joachim/dev/paraview2/ParaViewCore/ServerManager/Rendering/vtkPVComparativeView.cxx: In static member function ‘static vtkPVComparativeViewNS::vtkCloningVectorOfRepresentations* vtkPVComparativeViewNS::vtkCloningVectorOfRepresentations::New()’:
> /home/joachim/dev/paraview2/VTK/Common/Core/vtkObjectFactory.h:345:39: error: invalid static_cast from type ‘vtkObject*’ to type ‘vtkPVComparativeViewNS::vtkCloningVectorOfRepresentations*’
> return static_cast<thisClass*>(ret); \
> ^
> /home/joachim/dev/paraview2/VTK/Common/Core/vtkObjectFactory.h:366:3: note: in expansion of macro ‘VTK_OBJECT_FACTORY_NEW_BODY’
> VTK_OBJECT_FACTORY_NEW_BODY(thisClass)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/joachim/dev/paraview2/ParaViewCore/ServerManager/Rendering/vtkPVComparativeView.cxx:395:5: note: in expansion of macro ‘VTK_STANDARD_NEW_BODY’
> VTK_STANDARD_NEW_BODY(vtkCloningVectorOfRepresentations);
> ^~~~~~~~~~~~~~~~~~~~~
> /home/joachim/dev/paraview2/ParaViewCore/ServerManager/Rendering/vtkPVComparativeView.cxx: In static member function ‘static vtkPVComparativeViewNS::vtkCloningVectorOfViews* vtkPVComparativeViewNS::vtkCloningVectorOfViews::New()’:
> /home/joachim/dev/paraview2/VTK/Common/Core/vtkObjectFactory.h:345:39: error: invalid static_cast from type ‘vtkObject*’ to type ‘vtkPVComparativeViewNS::vtkCloningVectorOfViews*’
> return static_cast<thisClass*>(ret); \
> ^
> /home/joachim/dev/paraview2/VTK/Common/Core/vtkObjectFactory.h:366:3: note: in expansion of macro ‘VTK_OBJECT_FACTORY_NEW_BODY’
> VTK_OBJECT_FACTORY_NEW_BODY(thisClass)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/joachim/dev/paraview2/ParaViewCore/ServerManager/Rendering/vtkPVComparativeView.cxx:450:43: note: in expansion of macro ‘VTK_STANDARD_NEW_BODY’
> static vtkCloningVectorOfViews* New() { VTK_STANDARD_NEW_BODY(vtkCloningVectorOfViews); }
Problem is because with VTK_ALL_NEW_OBJECT_FACTORY=TRUE
, vtkObjectFactory.h:364
try to build the object vtkCloningVector
as a vtkObject
but it is declared only as a vtkObjectBase
.
Declaring vtkCloningVector
as a vtkObject
instead seems to solve the issue.