I tried to add
#pragma link C++ class std::tuple<bool,double,double>+;
#pragma link C++ class std::pair<TString,std::tuple<bool,double,double>>+;
on top of my LinkDef,
And the other ones which relies on a given class i compile in this scheme
#pragma link C++ namespace pyPrj;
#pragma link C++ enum pyPrj::Prj;
#pragma link C++ namespace pyAnalysis;
#pragma link C++ enum pyAnalysis::Analysis;
#pragma link C++ namespace pySample;
#pragma link C++ enum pySample::Sample;
#pragma link C++ namespace pyQ2Bin;
#pragma link C++ enum pyQ2Bin::Q2Bin;
#pragma link C++ namespace pyYear;
#pragma link C++ enum pyYear::Year;
#pragma link C++ namespace pyPolarity;
#pragma link C++ enum pyPolarity::Polarity;
#pragma link C++ namespace pyTrigger;
#pragma link C++ enum pyTrigger::Trigger;
#pragma link C++ namespace pyTriggerConf;
#pragma link C++ enum pyTriggerConf::TriggerConf;
#pragma link C++ namespace pyBrem;
#pragma link C++ enum pyBrem::Brem;
#pragma link C++ namespace pyPdfType;
#pragma link C++ enum pyPdfType::PdfType;
#pragma link C++ namespace pyOpenMode;
#pragma link C++ enum pyOpenMode::OpenMode;
#pragma link C++ namespace pyBlindMode;
#pragma link C++ enum pyBlindMode::BlindMode;
#pragma link C++ defined_in "EnumeratorSvc.hpp";
/*
This when saving fits to disk...
Warning in <TStreamerInfo::Build>: pair<TString,tuple<bool,double,double> >: tuple<bool,double,double> has no streamer or dictionary, data member "second" will not be saved
Warning in <TStreamerInfo::Build>: pair<TString,tuple<EventType,TString,TString> >: tuple<EventType,TString,TString> has no streamer or dictionary, data member "second" will not be saved
Warning in <TStreamerInfo::Build>: pair<pySample::Sample,tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> >: tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> has no streamer or dictionary, data member "second" will not be saved
Warning in <TStreamerInfo::Build>: pair<pyBrem::Brem,tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> >: tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> has no streamer or dictionary, data member "second" will not be saved
Warning in <TStreamerInfo::Build>: pair<pair<FitParameterConfig,pyRatioType::RatioType>,ParameterWrapper>: pair<FitParameterConfig,pyRatioType::RatioType> has no streamer or dictionary, data member "first" will not be saved
*/
#pragma link C++ class std::tuple<EventType,TString,TString>+;
#pragma link C++ class std::pair<pySample::Sample,std::tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> >+;
#pragma link C++ class std::pair<pySample::Sample,std::tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> >+;
#pragma link C++ class std::pair<pyBrem::Brem,std::tuple<pyPdfType::PdfType,TString,TString,TString,TString,double> >+;
#pragma link C++ class std::tuple<pyPdfType::PdfType,TString,TString,TString,TString,double>+; //needed as private in FitConfiguration.hpp
#pragma link C++ class FitConfiguration+;
#pragma link C++ defined_in "FitConfiguration.hpp";
so the tuple, pair stuff after the LinkDef knows about enumerators, and before the class which uses it as private member.
Is this the recommended way?
If i move around the LinkDef orders, i get some Warning Unused class stuff.
Currently testing if Warnings will be gone with that. But any help in the meanwhile is welcome.
Thanks