51 what.Form(
"#include <%s>\n", header);
53 what.Form(
"#include \"%s\"\n", header);
75 name.Remove( limit - 32 - 5);
76 name.Append(
md.AsString() );
105 if (
nest == 0 &&
name[i+1] ==
':') {
131 if (
name[i+1] ==
'/') {
168 const char *fullname =
clname;
191 if (cl == 0 || (cl && cl->
Size() == 0)) {
230 std::vector<const char*>
argtype;
268 fprintf(fp,
"/* missing */ T%d",
p);
290 fprintf(fp,
"operator int() { return 0; };\n");
296 if (
strchr(fullname,
':') == 0) {
298 fprintf(fp,
"#ifdef __MAKECINT__\n#pragma link C++ class %s+;\n#endif\n", fullname);
328 newinfo->SetTitle(
"Generated by MakeProject as an empty class template instantiation");
331 newinfo->SetTitle(
"Generated by MakeProject as a namespace");
334 newinfo->SetTitle(
"Generated by MakeProject as an enum");
340 if (
info->GetClassVersion() == -3) {
343 info->SetTitle(
"Generated by MakeProject as an empty class");
344 info->SetClassVersion(-5 );
347 if (
info->GetClassVersion() == -4) {
350 info->SetTitle(
"Generated by MakeProject as an empty class");
351 info->SetClassVersion(-5 );
383 if (
nest == 1) last = i + 1;
386 if (
nest == 0)
return;
441 fprintf(fp,
"}; // end of class.\n");
445 fprintf(fp,
"} // end of namespace.\n");
467 if (
nest == 1) last = i + 1;
481 const char *
what =
"";
490 what =
"forward_list";
501 what =
"unordered_map";
509 what =
"unordered_set";
515 what =
"ROOT/RVec.hxx";
518 what =
"undetermined_stl_container";
522 fprintf(fp,
"namespace std {} using namespace std;\n");
527 }
else if (
strncmp(
incName.Data(),
"auto_ptr<", std::char_traits<char>::length(
"auto_ptr<")) == 0) {
534 if (!forward && cl) {
559 if (
info &&
info->GetClassVersion() == -5) {
573 std::vector<std::string> inside;
588 what.ReplaceAll(
"std::",
"");
615 std::vector<std::string> inside;
622 what = inside[1].c_str();
668 std::vector<std::string> inside;
674 for(
unsigned int i = 1; i<
narg; ++i) {
681 if (!inside[
narg-1].empty() && inside[
narg-1][0] ==
'*')
686 static const char*
allocPrefix =
"std::allocator<";
740 inside.push_back(
"std::vector");
741 inside.push_back(
what);
749 inside[0] =
"std::vector";
753 if (
strncmp(inside[0].c_str(),
"std::",5) != 0) {
754 inside[0] =
"std::" + inside[0];
757 static const char *
stlnames[] = {
"pair",
"greater",
"less",
"allocator" };
760 inside[0] =
"std::" + inside[0];
768 for(
unsigned int j=2;
j<
narg; ++
j) {
769 if (!inside[
j].empty()) {
780 }
else if (
newname ==
"string" ) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Fatal(const char *location, const char *msgfmt,...)
Use this function in case of a fatal error. It will abort the program.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
static constexpr int str_length(const char *str)
If we have a map, multimap, set or multiset, plus unordered partners, and the key is a class,...
TClass instances represent classes, structs and namespaces in the ROOT type system.
Bool_t HasInterpreterInfo() const
Int_t Size() const
Return size of object of this class.
const char * GetDeclFileName() const
Return name of the file containing the declaration of this class.
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
This code implements the MD5 message-digest algorithm.
static void GenerateMissingStreamerInfo(TList *extrainfos, const char *clname, Bool_t iscope)
Generate an empty StreamerInfo for the given type (no recursion) if it is not not known in the list o...
static TString GetHeaderName(const char *name, const TList *extrainfos, Bool_t includeNested=kFALSE)
Return the header name containing the description of name.
static void ChopFileName(TString &name, Int_t limit)
Chop the name by replacing the ending (before a potential extension) with a md5 summary of the name.
static void GenerateMissingStreamerInfos(TList *extrainfos, TStreamerElement *element)
Generate an empty StreamerInfo for types that are used in templates parameters but are not known in t...
static UInt_t GenerateForwardDeclaration(FILE *fp, const char *clname, char *inclist, Bool_t implementEmptyClass, Bool_t needGenericTemplate, const TList *extrainfos)
Insert a (complete) forward declaration for the class 'clname'.
static void AddUniqueStatement(FILE *fp, const char *statement, char *inclist)
Add an include statement, if it has not already been added.
static void AddInclude(FILE *fp, const char *header, Bool_t system, char *inclist)
Add an include statement, if it has not already been added.
static UInt_t GenerateIncludeForTemplate(FILE *fp, const char *clname, char *inclist, Bool_t forward, const TList *extrainfos)
Add to the header file, the #include needed for the argument of this template.
static void GeneratePostDeclaration(FILE *fp, const TVirtualStreamerInfo *info, char *inclist)
Add to the header file anything that need to appear after the class declaration (this includes some #...
static UInt_t GenerateClassPrefix(FILE *fp, const char *clname, Bool_t top, TString &protoname, UInt_t *numberOfClasses, Int_t implementEmptyClass=kFALSE, Bool_t needGenericTemplate=kFALSE)
Write the start of the class (forward) declaration.
static TString UpdateAssociativeToVector(const char *name)
Describes a persistent version of a class.
const char * Data() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Abstract Interface class describing Streamer information for one class.
ROOT::ESTLType STLKind(std::string_view type)
Converts STL container name to number.
bool IsStdClass(const char *type)
return true if the class belongs to the std namespace
bool IsStdPair(std::string_view name)
std::string GetLong64_Name(const char *original)
Replace 'long long' and 'unsigned long long' by 'Long64_t' and 'ULong64_t'.
ROOT::ESTLType IsSTLCont(std::string_view type)
type : type name: vector<list<classA,allocator>,allocator> result: 0 : not stl container code of cont...
std::string ShortType(const char *typeDesc, int mode)
Return the absolute type of typeDesc.
int GetSplit(const char *type, std::vector< std::string > &output, int &nestedLoc, EModType mode=TClassEdit::kNone)
Stores in output (after emptying it) the split type.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.