wrapit
wrapit copied to clipboard
Need to support templated base classes
I encountered two cases of a class inheriting from a templated base class that is blocking the progress in Geant4.jl.
- Class
G4[U]Boxinherits fromG4UAdapter<vecgeom::UnplacedBox>and this one inherits frompublic G4VSolid, protected UnplacedVolume_t. It is needed that we can use instances ofG4Boxin function arguments expectingG4VSolid*. - Class
HepGeom::Point3D<double>does not wrap any constructor. I get the following error:
The class is defined as[ Info: Precompiling Geant4 [559df036-b7a0-42fd-85df-7d5dd9d70f44] C++ exception while wrapping module Geant4: No appropriate factory for type N7HepGeom7Point3DIdEE ERROR: LoadError: No appropriate factory for type N7HepGeom7Point3DIdEEtemplate<class T> class Point3D : public BasicVector3D<T> {};
To reproduce the last error the following config file will do it:
include_dirs = [ "/cvmfs/sft.cern.ch/lcg/views/LCG_102/x86_64-centos7-gcc11-opt/include" ]
input = [ "CLHEP/Geometry/Transform3D.h",
"CLHEP/Geometry/Point3D.h",
]
Hello Pere,
I was not able to reproduce the issue with HepGeom::Point3D<double>. I will add the support for inheritance from templated class.
Philippe.
I' ve used https://gitlab.kitware.com/autopybind11/autopybind11 to generate some template based code. Would it be easier to reuse some code from there to generate for julia instead?