Skip to content

Need to support templated base classes #7

@peremato

Description

@peremato

I encountered two cases of a class inheriting from a templated base class that is blocking the progress in Geant4.jl.

  • Class G4[U]Box inherits from G4UAdapter<vecgeom::UnplacedBox> and this one inherits from public G4VSolid, protected UnplacedVolume_t. It is needed that we can use instances of G4Box in function arguments expecting G4VSolid*.
  • Class HepGeom::Point3D<double> does not wrap any constructor. I get the following error:
    [ 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 N7HepGeom7Point3DIdEE
    
    The class is defined as template<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",
                      ]

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions