I am trying with genreflex to build the REFLEX dictionaries for some classes inheriting inheriting from TObject using ROOT 5.22.
Basically I get the following complaint from g++ during the compilation:
In member function RooAbsArg& RooAbsArg::operator=(const RooAbsArg&)': /afs/cern.ch/cms/sw/slc4_ia32_gcc345/lcg/root/5.22.00-cms/include/TList.h:62: error:TList& TList::operator=(const TList&)’ is private
I can also reproduce the problem using the RooFit class RooRealVar (see the attachment for the file lcg_xml.xml):
yes, that’s a bug in GCCXML, the C++ parser used for the reflex dictionaries. I will report it. Until then you’re better off with a CINT dictionary if that’s an option. Or alternatively you can veto that function via the selection file.
GCCXML generates a list of functions that it “sees”. And the artificial default c’tor, copy c’tor and assignment op are added when “legal”. GCCXML misidentifies op= as legal in this case.
You should also be able to circumvent the issue by declaring an op= in your derived class.