Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
TClingTypedefInfo Class Referencefinal

Emulation of the CINT TypedefInfo class.

The CINT C++ interpreter provides an interface to metadata about a typedef through the TypedefInfo class. This class provides the same functionality, using an interface as close as possible to TypedefInfo but the typedef metadata comes from the Clang C++ compiler, not CINT.

Definition at line 45 of file TClingTypedefInfo.h.

Public Member Functions

 TClingTypedefInfo (cling::Interpreter *, const char *)
 Lookup named typedef and initialize the iterator to point to it.
 
 TClingTypedefInfo (cling::Interpreter *, const clang::TypedefNameDecl *)
 
 TClingTypedefInfo (cling::Interpreter *interp)
 
void Init (const char *name)
 Lookup named typedef and reset the iterator to point to it.
 
int InternalNext ()
 Increment the iterator, return true if new position is valid.
 
const char * Name () const override
 Get the name of the current typedef.
 
int Next ()
 Increment the iterator.
 
long Property () const
 Return a bit mask of metadata about the current typedef.
 
int Size () const
 Return the size in bytes of the underlying type of the current typedef.
 
const char * Title ()
 
const char * TrueName (const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) const
 Get the name of the underlying type of the current typedef.
 
- Public Member Functions inherited from TClingDeclInfo
 TClingDeclInfo ()=default
 
 TClingDeclInfo (const clang::Decl *D)
 
virtual ~TClingDeclInfo ()
 
clang::Decl * GetDecl ()
 
virtual const clang::Decl * GetDecl () const
 
virtual bool IsValid () const
 

Private Attributes

bool fDescend
 
bool fFirstTime
 
cling::Interpreter * fInterp
 
clang::DeclContext::decl_iterator fIter
 
std::vector< clang::DeclContext::decl_iterator > fIterStack
 
std::string fTitle
 

Additional Inherited Members

- Protected Member Functions inherited from TClingDeclInfo
long Property (long property, clang::QualType &qt) const
 
- Protected Attributes inherited from TClingDeclInfo
const clang::Decl * fDecl = nullptr
 
std::string fNameCache
 

#include </github/home/ROOT-CI/src/core/metacling/src/TClingTypedefInfo.h>

Inheritance diagram for TClingTypedefInfo:
[legend]

Constructor & Destructor Documentation

◆ TClingTypedefInfo() [1/3]

TClingTypedefInfo::TClingTypedefInfo ( cling::Interpreter * interp)
inlineexplicit

Definition at line 58 of file TClingTypedefInfo.h.

◆ TClingTypedefInfo() [2/3]

TClingTypedefInfo::TClingTypedefInfo ( cling::Interpreter * interp,
const char * name )
explicit

Lookup named typedef and initialize the iterator to point to it.

Yields a non-iterable TClingTypedefInfo (fIter is invalid).

Definition at line 40 of file TClingTypedefInfo.cxx.

◆ TClingTypedefInfo() [3/3]

TClingTypedefInfo::TClingTypedefInfo ( cling::Interpreter * interp,
const clang::TypedefNameDecl * TdefD )
explicit

Definition at line 47 of file TClingTypedefInfo.cxx.

Member Function Documentation

◆ Init()

void TClingTypedefInfo::Init ( const char * name)

Lookup named typedef and reset the iterator to point to it.

Definition at line 58 of file TClingTypedefInfo.cxx.

◆ InternalNext()

int TClingTypedefInfo::InternalNext ( )

Increment the iterator, return true if new position is valid.

Definition at line 102 of file TClingTypedefInfo.cxx.

◆ Name()

const char * TClingTypedefInfo::Name ( ) const
overridevirtual

Get the name of the current typedef.

Reimplemented from TClingDeclInfo.

Definition at line 255 of file TClingTypedefInfo.cxx.

◆ Next()

int TClingTypedefInfo::Next ( )

Increment the iterator.

Definition at line 173 of file TClingTypedefInfo.cxx.

◆ Property()

long TClingTypedefInfo::Property ( ) const

Return a bit mask of metadata about the current typedef.

Definition at line 181 of file TClingTypedefInfo.cxx.

◆ Size()

int TClingTypedefInfo::Size ( ) const

Return the size in bytes of the underlying type of the current typedef.

Definition at line 196 of file TClingTypedefInfo.cxx.

◆ Title()

const char * TClingTypedefInfo::Title ( )

Definition at line 271 of file TClingTypedefInfo.cxx.

◆ TrueName()

const char * TClingTypedefInfo::TrueName ( const ROOT::TMetaUtils::TNormalizedCtxt & normCtxt) const

Get the name of the underlying type of the current typedef.

Definition at line 231 of file TClingTypedefInfo.cxx.

Member Data Documentation

◆ fDescend

bool TClingTypedefInfo::fDescend
private

Definition at line 51 of file TClingTypedefInfo.h.

◆ fFirstTime

bool TClingTypedefInfo::fFirstTime
private

Definition at line 50 of file TClingTypedefInfo.h.

◆ fInterp

cling::Interpreter* TClingTypedefInfo::fInterp
private

Definition at line 49 of file TClingTypedefInfo.h.

◆ fIter

clang::DeclContext::decl_iterator TClingTypedefInfo::fIter
private

Definition at line 52 of file TClingTypedefInfo.h.

◆ fIterStack

std::vector<clang::DeclContext::decl_iterator> TClingTypedefInfo::fIterStack
private

Definition at line 53 of file TClingTypedefInfo.h.

◆ fTitle

std::string TClingTypedefInfo::fTitle
private

Definition at line 54 of file TClingTypedefInfo.h.

  • core/metacling/src/TClingTypedefInfo.h
  • core/metacling/src/TClingTypedefInfo.cxx