/usr/include/root/TClassEdit.h is in libroot-core-dev 5.34.30-0ubuntu8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | // @(#)root/base:$Id$
// Author: Victor Perev 10/04/2003
// Philippe Canal 05/2004
/*************************************************************************
* Copyright (C) 1995-2003, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TClassEdit
#define ROOT_TClassEdit
#include "RConfig.h"
#include <string>
#include <vector>
#ifndef ROOT_ESTLType
#include "ESTLType.h"
#endif
#ifdef R__OLDHPACC
namespace std {
using ::string;
using ::vector;
}
#endif
#if defined(__CYGWIN__)
// std::to_string is missing on cygwin with gcc 4.8.2-2 and 4.8.3
#include <sstream>
namespace std {
template <typename T>
string to_string(T value) {
ostringstream os;
os << value;
return os.str();
}
}
#endif
// TClassEdit is used to manipulate class and type names.
//
// This class does not dependent on any other ROOT facility
// so that it can be used by rootcint.
namespace TClassEdit {
enum EModType {
kNone = 0,
kDropTrailStar = 1<<0,
kDropDefaultAlloc = 1<<1,
kDropAlloc = 1<<2,
kInnerClass = 1<<3,
kInnedMostClass = 1<<4,
kDropStlDefault = 1<<5, /* implies kDropDefaultAlloc */
kDropComparator = 1<<6, /* if the class has a comparator, drops BOTH the comparator and the Allocator */
kDropAllDefault = 1<<7, /* Drop default template parameter even in non STL classes */
kLong64 = 1<<8, /* replace all 'long long' with Long64_t. */
kDropStd = 1<<9 /* Drop any std:: */
};
enum ESTLType {
kNotSTL = ROOT::kNotSTL,
kVector = ROOT::kSTLvector,
kList = ROOT::kSTLlist,
kDeque = ROOT::kSTLdeque,
kMap = ROOT::kSTLmap,
kMultiMap = ROOT::kSTLmultimap,
kSet = ROOT::kSTLset,
kMultiSet = ROOT::kSTLmultiset,
kBitSet = ROOT::kSTLbitset,
kEnd = 9
};
struct TSplitType {
const char *fName; // Original spelling of the name.
std::vector<std::string> fElements;
int fNestedLocation; // Stores the location of the tail (nested names) in nestedLoc (0 indicates no tail).
TSplitType(const char *type2split, EModType mode = TClassEdit::kNone);
int IsSTLCont(int testAlloc=0) const;
void ShortType(std::string &answer, int mode);
private:
TSplitType(const TSplitType&); // intentionally not implemented
TSplitType &operator=(const TSplitType &); // intentionally not implemented
};
std::string CleanType (const char *typeDesc,int mode = 0,const char **tail=0);
bool IsDefAlloc(const char *alloc, const char *classname);
bool IsDefAlloc(const char *alloc, const char *keyclassname, const char *valueclassname);
bool IsDefComp (const char *comp , const char *classname);
bool IsSTLBitset(const char *type);
int IsSTLCont (const char *type,int testAlloc=0);
bool IsStdClass(const char *type);
bool IsVectorBool(const char *name);
std::string GetLong64_Name(const char *original);
std::string GetLong64_Name(const std::string& original);
int GetSplit (const char *type, std::vector<std::string> &output, int &nestedLoc, EModType mode = TClassEdit::kNone);
int STLKind (const char *type); //Kind of stl container
int STLArgs (int kind); //Min number of arguments without allocator
std::string ResolveTypedef(const char *tname, bool resolveAll = false);
std::string ShortType (const char *typeDesc, int mode);
std::string InsertStd(const char *tname);
}
#endif
|