From d490041616ce9722e70c63ca42d83d4080f006a5 Mon Sep 17 00:00:00 2001
From: Philippe Gras <philippe.gras@cern.ch>
Date: Sun, 28 Jul 2024 10:09:46 +0200
Subject: [PATCH]     Fix a compilation error on MacOS and add two missing
 source file.

Code generated with commit ba87cb5f65a2f7a32793eeb781f41a23adc6a7ff of
ROOT.jl-generator
---
 deps/src/JlClasses_017.cxx |   8 +-
 deps/src/JlClasses_019.cxx | 389 +++++++++++++++++++++++++++++++++++++
 deps/src/JlClasses_020.cxx |  79 ++++++++
 3 files changed, 472 insertions(+), 4 deletions(-)
 create mode 100644 deps/src/JlClasses_019.cxx
 create mode 100644 deps/src/JlClasses_020.cxx

diff --git a/deps/src/JlClasses_017.cxx b/deps/src/JlClasses_017.cxx
index ef3f085..393a794 100644
--- a/deps/src/JlClasses_017.cxx
+++ b/deps/src/JlClasses_017.cxx
@@ -160,15 +160,15 @@ struct JlTProfile2D: public Wrapper {
     // signature to use in the veto list: Int_t TProfile2D::Fill(const char *, Double_t, Double_t, Double_t)
     // defined in /home/pgras/.julia/conda/3/include/TProfile2D.h:105:22
     t.method("Fill", static_cast<Int_t (TProfile2D::*)(const char *, Double_t, Double_t, Double_t) >(&TProfile2D::Fill));
-    t.method("Fill", [](TProfile2D& a, const char * arg0, Double_t arg1, Double_t arg2)->Int_t { return a.Fill(arg0, arg1, arg2); });
-    t.method("Fill", [](TProfile2D* a, const char * arg0, Double_t arg1, Double_t arg2)->Int_t { return a->Fill(arg0, arg1, arg2); });
+    t.method("Fill", [](TProfile2D& a, const char * arg0, Double_t arg1, Double_t arg2)->Int_t { return a.TProfile2D::Fill(arg0, arg1, arg2); });
+    t.method("Fill", [](TProfile2D* a, const char * arg0, Double_t arg1, Double_t arg2)->Int_t { return a->TProfile2D::Fill(arg0, arg1, arg2); });
 
     DEBUG_MSG("Adding wrapper for Int_t TProfile2D::Fill(const char *, const char *, Double_t, Double_t) (" __HERE__ ")");
     // signature to use in the veto list: Int_t TProfile2D::Fill(const char *, const char *, Double_t, Double_t)
     // defined in /home/pgras/.julia/conda/3/include/TProfile2D.h:106:22
     t.method("Fill", static_cast<Int_t (TProfile2D::*)(const char *, const char *, Double_t, Double_t) >(&TProfile2D::Fill));
-    t.method("Fill", [](TProfile2D& a, const char * arg0, const char * arg1, Double_t arg2)->Int_t { return a.Fill(arg0, arg1, arg2); });
-    t.method("Fill", [](TProfile2D* a, const char * arg0, const char * arg1, Double_t arg2)->Int_t { return a->Fill(arg0, arg1, arg2); });
+    t.method("Fill", [](TProfile2D& a, const char * arg0, const char * arg1, Double_t arg2)->Int_t { return a.TProfile2D::Fill(arg0, arg1, arg2); });
+    t.method("Fill", [](TProfile2D* a, const char * arg0, const char * arg1, Double_t arg2)->Int_t { return a->TProfile2D::Fill(arg0, arg1, arg2); });
 
     DEBUG_MSG("Adding wrapper for Int_t TProfile2D::Fill(Double_t, Double_t, Double_t, Double_t) (" __HERE__ ")");
     // signature to use in the veto list: Int_t TProfile2D::Fill(Double_t, Double_t, Double_t, Double_t)
diff --git a/deps/src/JlClasses_019.cxx b/deps/src/JlClasses_019.cxx
new file mode 100644
index 0000000..247c88d
--- /dev/null
+++ b/deps/src/JlClasses_019.cxx
@@ -0,0 +1,389 @@
+// this file was auto-generated by wrapit v1.4.0
+#include "Wrapper.h"
+
+#include "jlROOT.h"
+#include "dbg_msg.h"
+#include "jlcxx/functions.hpp"
+#include "jlcxx/stl.hpp"
+
+namespace jlcxx {
+  template<> struct IsMirroredType<TFormula> : std::false_type { };
+  template<> struct DefaultConstructible<TFormula> : std::false_type { };
+template<> struct SuperType<TFormula> { typedef TNamed type; };
+}
+
+// Class generating the wrapper for type TFormula
+// signature to use in the veto file: TFormula
+struct JlTFormula: public Wrapper {
+
+  JlTFormula(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TFormula (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TFormula.h:86:7
+    jlcxx::TypeWrapper<TFormula>  t = jlModule.add_type<TFormula>("TFormula",
+      jlcxx::julia_base_type<TNamed>());
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<TFormula>>(new jlcxx::TypeWrapper<TFormula>(jlModule, t));
+  }
+
+  void add_methods() const{
+    auto& t = *type_;
+    t.template constructor<>(/*finalize=*/true);
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<TFormula>> type_;
+};
+std::shared_ptr<Wrapper> newJlTFormula(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTFormula(module));
+}
+
+namespace jlcxx {
+  template<> struct IsMirroredType<TMethodCall> : std::false_type { };
+  template<> struct DefaultConstructible<TMethodCall> : std::false_type { };
+template<> struct SuperType<TMethodCall> { typedef TObject type; };
+}
+
+// Class generating the wrapper for type TMethodCall
+// signature to use in the veto file: TMethodCall
+struct JlTMethodCall: public Wrapper {
+
+  JlTMethodCall(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TMethodCall (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TMethodCall.h:37:7
+    jlcxx::TypeWrapper<TMethodCall>  t = jlModule.add_type<TMethodCall>("TMethodCall",
+      jlcxx::julia_base_type<TObject>());
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<TMethodCall>>(new jlcxx::TypeWrapper<TMethodCall>(jlModule, t));
+  }
+
+  void add_methods() const{
+    auto& t = *type_;
+    t.template constructor<>(/*finalize=*/true);
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<TMethodCall>> type_;
+};
+std::shared_ptr<Wrapper> newJlTMethodCall(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTMethodCall(module));
+}
+
+namespace jlcxx {
+  template<> struct IsMirroredType<TTreeReader> : std::false_type { };
+  template<> struct DefaultConstructible<TTreeReader> : std::false_type { };
+  template<> struct CopyConstructible<TTreeReader> : std::false_type { };
+template<> struct SuperType<TTreeReader> { typedef TObject type; };
+}
+
+// Class generating the wrapper for type TTreeReader
+// signature to use in the veto file: TTreeReader
+struct JlTTreeReader: public Wrapper {
+
+  JlTTreeReader(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TTreeReader (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:44:7
+    jlcxx::TypeWrapper<TTreeReader>  t = jlModule.add_type<TTreeReader>("TTreeReader",
+      jlcxx::julia_base_type<TObject>());
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<TTreeReader>>(new jlcxx::TypeWrapper<TTreeReader>(jlModule, t));
+  }
+
+  void add_methods() const{
+    auto& t = *type_;
+    t.template constructor<>(/*finalize=*/true);
+
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::TTreeReader(TTree *, TEntryList *) (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:165:4
+    t.constructor<TTree *>(/*finalize=*/true);
+    t.constructor<TTree *, TEntryList *>(/*finalize=*/true);
+
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::TTreeReader(const char *, TDirectory *, TEntryList *) (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:166:4
+    t.constructor<const char *, TDirectory *>(/*finalize=*/true);
+    t.constructor<const char *, TDirectory *, TEntryList *>(/*finalize=*/true);
+
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::TTreeReader(const char *, TEntryList *) (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:167:4
+    t.constructor<const char *>(/*finalize=*/true);
+    t.constructor<const char *, TEntryList *>(/*finalize=*/true);
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::SetTree(TTree *, TEntryList *) (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::SetTree(TTree *, TEntryList *)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:171:9
+    t.method("SetTree", static_cast<void (TTreeReader::*)(TTree *, TEntryList *) >(&TTreeReader::SetTree));
+    t.method("SetTree", [](TTreeReader& a, TTree * arg0)->void { a.SetTree(arg0); });
+    t.method("SetTree", [](TTreeReader* a, TTree * arg0)->void { a->SetTree(arg0); });
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::SetTree(const char *, TEntryList *) (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::SetTree(const char *, TEntryList *)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:172:9
+    t.method("SetTree", static_cast<void (TTreeReader::*)(const char *, TEntryList *) >(&TTreeReader::SetTree));
+    t.method("SetTree", [](TTreeReader& a, const char * arg0)->void { a.SetTree(arg0); });
+    t.method("SetTree", [](TTreeReader* a, const char * arg0)->void { a->SetTree(arg0); });
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::SetTree(const char *, TDirectory *, TEntryList *) (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::SetTree(const char *, TDirectory *, TEntryList *)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:175:9
+    t.method("SetTree", static_cast<void (TTreeReader::*)(const char *, TDirectory *, TEntryList *) >(&TTreeReader::SetTree));
+    t.method("SetTree", [](TTreeReader& a, const char * arg0, TDirectory * arg1)->void { a.SetTree(arg0, arg1); });
+    t.method("SetTree", [](TTreeReader* a, const char * arg0, TDirectory * arg1)->void { a->SetTree(arg0, arg1); });
+
+    DEBUG_MSG("Adding wrapper for Bool_t TTreeReader::IsChain() (" __HERE__ ")");
+    // signature to use in the veto list: Bool_t TTreeReader::IsChain()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:177:11
+    t.method("IsChain", static_cast<Bool_t (TTreeReader::*)()  const>(&TTreeReader::IsChain));
+
+    DEBUG_MSG("Adding wrapper for Bool_t TTreeReader::IsInvalid() (" __HERE__ ")");
+    // signature to use in the veto list: Bool_t TTreeReader::IsInvalid()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:179:11
+    t.method("IsInvalid", static_cast<Bool_t (TTreeReader::*)()  const>(&TTreeReader::IsInvalid));
+
+    DEBUG_MSG("Adding wrapper for TTree * TTreeReader::GetTree() (" __HERE__ ")");
+    // signature to use in the veto list: TTree * TTreeReader::GetTree()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:181:11
+    t.method("GetTree", static_cast<TTree * (TTreeReader::*)()  const>(&TTreeReader::GetTree));
+
+    DEBUG_MSG("Adding wrapper for TEntryList * TTreeReader::GetEntryList() (" __HERE__ ")");
+    // signature to use in the veto list: TEntryList * TTreeReader::GetEntryList()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:182:16
+    t.method("GetEntryList", static_cast<TEntryList * (TTreeReader::*)()  const>(&TTreeReader::GetEntryList));
+
+    DEBUG_MSG("Adding wrapper for Bool_t TTreeReader::Next() (" __HERE__ ")");
+    // signature to use in the veto list: Bool_t TTreeReader::Next()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:190:11
+    t.method("Next", static_cast<Bool_t (TTreeReader::*)() >(&TTreeReader::Next));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::EEntryStatus TTreeReader::SetEntry(Long64_t) (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::EEntryStatus TTreeReader::SetEntry(Long64_t)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:199:17
+    t.method("SetEntry", static_cast<TTreeReader::EEntryStatus (TTreeReader::*)(Long64_t) >(&TTreeReader::SetEntry));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::EEntryStatus TTreeReader::SetLocalEntry(Long64_t) (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::EEntryStatus TTreeReader::SetLocalEntry(Long64_t)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:209:17
+    t.method("SetLocalEntry", static_cast<TTreeReader::EEntryStatus (TTreeReader::*)(Long64_t) >(&TTreeReader::SetLocalEntry));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::EEntryStatus TTreeReader::SetEntriesRange(Long64_t, Long64_t) (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::EEntryStatus TTreeReader::SetEntriesRange(Long64_t, Long64_t)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:211:17
+    t.method("SetEntriesRange", static_cast<TTreeReader::EEntryStatus (TTreeReader::*)(Long64_t, Long64_t) >(&TTreeReader::SetEntriesRange));
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::Restart() (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::Restart()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:219:9
+    t.method("Restart", static_cast<void (TTreeReader::*)() >(&TTreeReader::Restart));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::EEntryStatus TTreeReader::GetEntryStatus() (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::EEntryStatus TTreeReader::GetEntryStatus()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:223:17
+    t.method("GetEntryStatus", static_cast<TTreeReader::EEntryStatus (TTreeReader::*)()  const>(&TTreeReader::GetEntryStatus));
+
+    DEBUG_MSG("Adding wrapper for Long64_t TTreeReader::GetEntries() (" __HERE__ ")");
+    // signature to use in the veto list: Long64_t TTreeReader::GetEntries()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:225:13
+    t.method("GetEntries", static_cast<Long64_t (TTreeReader::*)()  const>(&TTreeReader::GetEntries));
+
+    DEBUG_MSG("Adding wrapper for Long64_t TTreeReader::GetEntries(Bool_t) (" __HERE__ ")");
+    // signature to use in the veto list: Long64_t TTreeReader::GetEntries(Bool_t)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:226:13
+    t.method("GetEntries", static_cast<Long64_t (TTreeReader::*)(Bool_t) >(&TTreeReader::GetEntries));
+
+    DEBUG_MSG("Adding wrapper for Long64_t TTreeReader::GetCurrentEntry() (" __HERE__ ")");
+    // signature to use in the veto list: Long64_t TTreeReader::GetCurrentEntry()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:235:13
+    t.method("GetCurrentEntry", static_cast<Long64_t (TTreeReader::*)()  const>(&TTreeReader::GetCurrentEntry));
+
+    DEBUG_MSG("Adding wrapper for Bool_t TTreeReader::Notify() (" __HERE__ ")");
+    // signature to use in the veto list: Bool_t TTreeReader::Notify()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:237:11
+    t.method("Notify", static_cast<Bool_t (TTreeReader::*)() >(&TTreeReader::Notify));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::Iterator_t TTreeReader::begin() (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::Iterator_t TTreeReader::begin()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:240:15
+    t.method("begin", static_cast<TTreeReader::Iterator_t (TTreeReader::*)() >(&TTreeReader::begin));
+
+    DEBUG_MSG("Adding wrapper for TTreeReader::Iterator_t TTreeReader::end() (" __HERE__ ")");
+    // signature to use in the veto list: TTreeReader::Iterator_t TTreeReader::end()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:244:15
+    t.method("end", static_cast<TTreeReader::Iterator_t (TTreeReader::*)()  const>(&TTreeReader::end));
+
+    DEBUG_MSG("Adding wrapper for Version_t TTreeReader::Class_Version() (" __HERE__ ")");
+    // signature to use in the veto list: Version_t TTreeReader::Class_Version()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!Class_Version", static_cast<Version_t (*)() >(&TTreeReader::Class_Version));
+
+    DEBUG_MSG("Adding wrapper for TClass * TTreeReader::IsA() (" __HERE__ ")");
+    // signature to use in the veto list: TClass * TTreeReader::IsA()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    t.method("IsA", static_cast<TClass * (TTreeReader::*)()  const>(&TTreeReader::IsA));
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::StreamerNVirtual(TBuffer &) (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::StreamerNVirtual(TBuffer &)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    t.method("StreamerNVirtual", static_cast<void (TTreeReader::*)(TBuffer &) >(&TTreeReader::StreamerNVirtual));
+
+    DEBUG_MSG("Adding wrapper for const char * TTreeReader::DeclFileName() (" __HERE__ ")");
+    // signature to use in the veto list: const char * TTreeReader::DeclFileName()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!DeclFileName", []() { return (std::string)TTreeReader::DeclFileName(); });
+
+    DEBUG_MSG("Adding wrapper for int TTreeReader::ImplFileLine() (" __HERE__ ")");
+    // signature to use in the veto list: int TTreeReader::ImplFileLine()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!ImplFileLine", static_cast<int (*)() >(&TTreeReader::ImplFileLine));
+
+    DEBUG_MSG("Adding wrapper for const char * TTreeReader::ImplFileName() (" __HERE__ ")");
+    // signature to use in the veto list: const char * TTreeReader::ImplFileName()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!ImplFileName", []() { return (std::string)TTreeReader::ImplFileName(); });
+
+    DEBUG_MSG("Adding wrapper for const char * TTreeReader::Class_Name() (" __HERE__ ")");
+    // signature to use in the veto list: const char * TTreeReader::Class_Name()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!Class_Name", []() { return (std::string)TTreeReader::Class_Name(); });
+
+    DEBUG_MSG("Adding wrapper for TClass * TTreeReader::Dictionary() (" __HERE__ ")");
+    // signature to use in the veto list: TClass * TTreeReader::Dictionary()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!Dictionary", static_cast<TClass * (*)() >(&TTreeReader::Dictionary));
+
+    DEBUG_MSG("Adding wrapper for TClass * TTreeReader::Class() (" __HERE__ ")");
+    // signature to use in the veto list: TClass * TTreeReader::Class()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!Class", static_cast<TClass * (*)() >(&TTreeReader::Class));
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::Streamer(TBuffer &) (" __HERE__ ")");
+    // signature to use in the veto list: void TTreeReader::Streamer(TBuffer &)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    t.method("Streamer", static_cast<void (TTreeReader::*)(TBuffer &) >(&TTreeReader::Streamer));
+
+    DEBUG_MSG("Adding wrapper for int TTreeReader::DeclFileLine() (" __HERE__ ")");
+    // signature to use in the veto list: int TTreeReader::DeclFileLine()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:314:4
+    module_.method("TTreeReader!DeclFileLine", static_cast<int (*)() >(&TTreeReader::DeclFileLine));
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<TTreeReader>> type_;
+};
+std::shared_ptr<Wrapper> newJlTTreeReader(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTTreeReader(module));
+}
+
+namespace jlcxx {
+
+  template<typename T>
+  struct BuildParameterList<TTreeReaderValue<T>>
+  {
+    typedef ParameterList<T> type;
+  };
+
+  template<typename T> struct IsMirroredType<TTreeReaderValue<T>> : std::false_type { };
+  template<typename T> struct DefaultConstructible<TTreeReaderValue<T>> : std::false_type { };
+}
+
+// Class generating the wrapper for type TTreeReaderValue
+// signature to use in the veto file: TTreeReaderValue
+struct JlTTreeReaderValue: public Wrapper {
+
+  JlTTreeReaderValue(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TTreeReaderValue (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReaderValue.h:146:30
+    jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>  t =  jlModule.add_type<jlcxx::Parametric<jlcxx::TypeVar<1>>>("TTreeReaderValue");
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>>(new jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>(jlModule, t));
+    auto t145_decl_methods = [this]<typename T> (jlcxx::TypeWrapper<TTreeReaderValue<T>> wrapped){
+      auto module_ = this->module_;
+      typedef TTreeReaderValue<T> WrappedType;
+
+
+      DEBUG_MSG("Adding wrapper for void TTreeReaderValue::TTreeReaderValue<T>(TTreeReader &, const char *) (" __HERE__ ")");
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderValue.h:152:4
+      wrapped.template constructor<TTreeReader &, const char *>(/*finalize=*/true);
+
+      DEBUG_MSG("Adding wrapper for T * TTreeReaderValue::Get() (" __HERE__ ")");
+      // signature to use in the veto list: T * TTreeReaderValue::Get()
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderValue.h:161:7
+      wrapped.method("Get", static_cast<T * (WrappedType::*)() >(&WrappedType::Get));
+
+      DEBUG_MSG("Adding wrapper for T * TTreeReaderValue::operator->() (" __HERE__ ")");
+      // signature to use in the veto list: T * TTreeReaderValue::operator->()
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderValue.h:174:7
+      wrapped.method("arrow", static_cast<T * (WrappedType::*)() >(&WrappedType::operator->));
+      module_.set_override_module(jl_base_module);
+
+      DEBUG_MSG("Adding wrapper for T & TTreeReaderValue::operator*() (" __HERE__ ")");
+      // signature to use in the veto list: T & TTreeReaderValue::operator*()
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderValue.h:179:7
+      wrapped.method("getindex", static_cast<T & (WrappedType::*)() >(&WrappedType::operator*));
+
+      module_.unset_override_module();
+    };
+    t.apply<TTreeReaderValue<double>, TTreeReaderValue<float>, TTreeReaderValue<unsigned long>, TTreeReaderValue<long>, TTreeReaderValue<unsigned int>, TTreeReaderValue<int>, TTreeReaderValue<unsigned short>, TTreeReaderValue<short>, TTreeReaderValue<unsigned char>, TTreeReaderValue<char>>(t145_decl_methods);
+  }
+
+  void add_methods() const{
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>> type_;
+};
+std::shared_ptr<Wrapper> newJlTTreeReaderValue(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTTreeReaderValue(module));
+}
+
+namespace jlcxx {
+  template<> struct IsMirroredType<TTreeReader::Iterator_t> : std::false_type { };
+  template<> struct DefaultConstructible<TTreeReader::Iterator_t> : std::false_type { };
+}
+
+// Class generating the wrapper for type TTreeReader::Iterator_t
+// signature to use in the veto file: TTreeReader::Iterator_t
+struct JlTTreeReader_Iterator_t: public Wrapper {
+
+  JlTTreeReader_Iterator_t(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TTreeReader::Iterator_t (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:56:10
+    jlcxx::TypeWrapper<TTreeReader::Iterator_t>  t = jlModule.add_type<TTreeReader::Iterator_t>("TTreeReader!Iterator_t");
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<TTreeReader::Iterator_t>>(new jlcxx::TypeWrapper<TTreeReader::Iterator_t>(jlModule, t));
+  }
+
+  void add_methods() const{
+    auto& t = *type_;
+    t.template constructor<>(/*finalize=*/true);
+
+
+    DEBUG_MSG("Adding wrapper for void TTreeReader::Iterator_t::Iterator_t(TTreeReader &, Long64_t) (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:77:7
+    t.constructor<TTreeReader &, Long64_t>(/*finalize=*/true);
+    module_.set_override_module(jl_base_module);
+
+    DEBUG_MSG("Adding wrapper for bool TTreeReader::Iterator_t::operator==(const TTreeReader::Iterator_t &) (" __HERE__ ")");
+    // signature to use in the veto list: bool TTreeReader::Iterator_t::operator==(const TTreeReader::Iterator_t &)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:81:12
+    t.method("==", static_cast<bool (TTreeReader::Iterator_t::*)(const TTreeReader::Iterator_t &)  const>(&TTreeReader::Iterator_t::operator==));
+
+    DEBUG_MSG("Adding wrapper for bool TTreeReader::Iterator_t::operator!=(const TTreeReader::Iterator_t &) (" __HERE__ ")");
+    // signature to use in the veto list: bool TTreeReader::Iterator_t::operator!=(const TTreeReader::Iterator_t &)
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:88:12
+    t.method("!=", static_cast<bool (TTreeReader::Iterator_t::*)(const TTreeReader::Iterator_t &)  const>(&TTreeReader::Iterator_t::operator!=));
+
+    DEBUG_MSG("Adding wrapper for const Long64_t & TTreeReader::Iterator_t::operator*() (" __HERE__ ")");
+    // signature to use in the veto list: const Long64_t & TTreeReader::Iterator_t::operator*()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:113:23
+    t.method("getindex", static_cast<const Long64_t & (TTreeReader::Iterator_t::*)() >(&TTreeReader::Iterator_t::operator*));
+
+    DEBUG_MSG("Adding wrapper for const Long64_t & TTreeReader::Iterator_t::operator*() (" __HERE__ ")");
+    // signature to use in the veto list: const Long64_t & TTreeReader::Iterator_t::operator*()
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReader.h:124:23
+    t.method("getindex", static_cast<const Long64_t & (TTreeReader::Iterator_t::*)()  const>(&TTreeReader::Iterator_t::operator*));
+
+    module_.unset_override_module();
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<TTreeReader::Iterator_t>> type_;
+};
+std::shared_ptr<Wrapper> newJlTTreeReader_Iterator_t(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTTreeReader_Iterator_t(module));
+}
diff --git a/deps/src/JlClasses_020.cxx b/deps/src/JlClasses_020.cxx
new file mode 100644
index 0000000..6fae827
--- /dev/null
+++ b/deps/src/JlClasses_020.cxx
@@ -0,0 +1,79 @@
+// this file was auto-generated by wrapit v1.4.0
+#include "Wrapper.h"
+
+#include "jlROOT.h"
+#include "dbg_msg.h"
+#include "jlcxx/functions.hpp"
+#include "jlcxx/stl.hpp"
+
+namespace jlcxx {
+
+  template<typename T>
+  struct BuildParameterList<TTreeReaderArray<T>>
+  {
+    typedef ParameterList<T> type;
+  };
+
+  template<typename T> struct IsMirroredType<TTreeReaderArray<T>> : std::false_type { };
+  template<typename T> struct DefaultConstructible<TTreeReaderArray<T>> : std::false_type { };
+}
+
+// Class generating the wrapper for type TTreeReaderArray
+// signature to use in the veto file: TTreeReaderArray
+struct JlTTreeReaderArray: public Wrapper {
+
+  JlTTreeReaderArray(jlcxx::Module& jlModule): Wrapper(jlModule){
+    DEBUG_MSG("Adding wrapper for type TTreeReaderArray (" __HERE__ ")");
+    // defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:75:30
+    jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>  t =  jlModule.add_type<jlcxx::Parametric<jlcxx::TypeVar<1>>>("TTreeReaderArray");
+    type_ = std::unique_ptr<jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>>(new jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>(jlModule, t));
+    auto t151_decl_methods = [this]<typename T> (jlcxx::TypeWrapper<TTreeReaderArray<T>> wrapped){
+      auto module_ = this->module_;
+      typedef TTreeReaderArray<T> WrappedType;
+
+
+      DEBUG_MSG("Adding wrapper for void TTreeReaderArray::TTreeReaderArray<T>(TTreeReader &, const char *) (" __HERE__ ")");
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:202:4
+      wrapped.template constructor<TTreeReader &, const char *>(/*finalize=*/true);
+
+      DEBUG_MSG("Adding wrapper for T & TTreeReaderArray::At(std::size_t) (" __HERE__ ")");
+      // signature to use in the veto list: T & TTreeReaderArray::At(std::size_t)
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:205:7
+      wrapped.method("At", static_cast<T & (WrappedType::*)(std::size_t) >(&WrappedType::At));
+
+      DEBUG_MSG("Adding wrapper for const T & TTreeReaderArray::At(std::size_t) (" __HERE__ ")");
+      // signature to use in the veto list: const T & TTreeReaderArray::At(std::size_t)
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:206:13
+      wrapped.method("At", static_cast<const T & (WrappedType::*)(std::size_t)  const>(&WrappedType::At));
+      module_.set_override_module(jl_base_module);
+
+
+      DEBUG_MSG("Adding setindex! method  to wrap T & TTreeReaderArray::operator[](std::size_t) (" __HERE__ ")");
+// defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:207:7
+      wrapped.method("setindex!",
+        [](WrappedType& a, std::size_t i, T const & val){
+        return a[i] = val;
+      });
+
+      DEBUG_MSG("Adding getindex method to wrap T & TTreeReaderArray::operator[](std::size_t) (" __HERE__ ")");
+      // defined in /home/pgras/.julia/conda/3/include/TTreeReaderArray.h:207:7
+      wrapped.method("getindex",
+        [](WrappedType& a, std::size_t i){
+        return a[i];
+      });
+
+
+      module_.unset_override_module();
+    };
+    t.apply<TTreeReaderArray<double>, TTreeReaderArray<float>, TTreeReaderArray<unsigned long>, TTreeReaderArray<long>, TTreeReaderArray<unsigned int>, TTreeReaderArray<int>, TTreeReaderArray<unsigned short>, TTreeReaderArray<short>, TTreeReaderArray<unsigned char>, TTreeReaderArray<char>>(t151_decl_methods);
+  }
+
+  void add_methods() const{
+  }
+
+private:
+  std::unique_ptr<jlcxx::TypeWrapper<jlcxx::Parametric<jlcxx::TypeVar<1>>>> type_;
+};
+std::shared_ptr<Wrapper> newJlTTreeReaderArray(jlcxx::Module& module){
+  return std::shared_ptr<Wrapper>(new JlTTreeReaderArray(module));
+}