12 #ifndef ROOT_TClingClassInfo
13 #define ROOT_TClingClassInfo
33 #include "llvm/ADT/DenseMap.h"
41 class FunctionTemplateDecl;
46 namespace TMetaUtils {
47 class TNormalizedCtxt;
61 clang::DeclContext::decl_iterator
fIter;
64 std::vector<clang::DeclContext::decl_iterator>
fIterStack;
67 llvm::DenseMap<const clang::Decl*, std::pair<ptrdiff_t, OffsetPtrFunc_t> >
fOffsetCache;
113 long GetOffset(
const clang::CXXMethodDecl* md)
const;
119 void Init(
const clang::Decl*);
120 void Init(
int tagnum);
123 static bool IsEnum(cling::Interpreter *interp,
const char *
name);
139 const char *
Name()
const;
145 #endif // ROOT_TClingClassInfo
const clang::FunctionTemplateDecl * GetFunctionTemplate(const char *fname) const
void AddBaseOffsetValue(const clang::Decl *decl, ptrdiff_t offset)
llvm::DenseMap< const clang::Decl *, std::pair< ptrdiff_t, OffsetPtrFunc_t > > fOffsetCache
Namespace for new ROOT classes and functions.
const char * Name() const
RooArgList L(const RooAbsArg &v1)
const clang::Type * fType
int GetMethodNArg(const char *method, const char *proto, Bool_t objectIsConst, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const
bool HasMethod(const char *name) const
void Destruct(void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
Emulation of the CINT MethodInfo class.
TClingClassInfo & operator=(const TClingClassInfo &)
ptrdiff_t GetBaseOffset(TClingClassInfo *toBase, void *address, bool isDerivedObject)
bool HasDefaultConstructor() const
TClingMethodInfo GetMethod(const char *fname) const
const clang::Type * GetType() const
ptrdiff_t(* OffsetPtrFunc_t)(void *, bool)
const clang::Decl * fDecl
long ClassProperty() const
static bool IsEnum(cling::Interpreter *interp, const char *name)
long GetOffset(const clang::CXXMethodDecl *md) const
std::string fDeclFileName
const char * TmpltName() const
void Init(const char *name)
Type
enumeration specifying the integration types.
const clang::Decl * GetDecl() const
void DeleteArray(void *arena, bool dtorOnly, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
double func(double *x, double *p)
void FullName(std::string &output, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
Emulation of the CINT ClassInfo class.
const clang::ValueDecl * GetDataMember(const char *name) const
void Delete(void *arena, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
void * New(const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
clang::DeclContext::decl_iterator fIter
TClingMethodInfo GetMethodWithArgs(const char *fname, const char *arglist, long *poffset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch, EInheritanceMode imode=kWithInheritance) const
std::vector< clang::DeclContext::decl_iterator > fIterStack
bool IsBase(const char *name) const
bool IsValidMethod(const char *method, const char *proto, Bool_t objectIsConst, long *offset, ROOT::EFunctionMatchMode mode=ROOT::kConversionMatch) const
cling::Interpreter * fInterp
static void output(int code)
void AddBaseOffsetFunction(const clang::Decl *decl, OffsetPtrFunc_t func)
TDictionary::DeclId_t GetDeclId() const