Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TClingDeclInfo.h
Go to the documentation of this file.
1 /// \file TClingDeclInfo.h
2 ///
3 /// \brief The file contains a base class of TCling*Info classes.
4 ///
5 /// \author Vassil Vassilev <vvasilev@cern.ch>
6 ///
7 /// \date March, 2019
8 ///
9 /*************************************************************************
10  * Copyright (C) 1995-2019, Rene Brun and Fons Rademakers. *
11  * All rights reserved. *
12  * *
13  * For the licensing terms see $ROOTSYS/LICENSE. *
14  * For the list of contributors see $ROOTSYS/README/CREDITS. *
15  *************************************************************************/
16 
17 #ifndef ROOT_TClingDeclInfo
18 #define ROOT_TClingDeclInfo
19 
20 #include <string>
21 
22 namespace clang {
23  class Decl;
24 }
25 
26 class TClingDeclInfo {
27 protected:
28  const clang::Decl* fDecl = nullptr;
29  std::string fNameCache;
30 public:
31  TClingDeclInfo(const clang::Decl* D) : fDecl(D) {}
32  virtual ~TClingDeclInfo();
33 
34  virtual const clang::Decl* GetDecl() const { return fDecl; }
35  clang::Decl* GetDecl() {
36  return const_cast<clang::Decl*>(const_cast<const TClingDeclInfo*>(this)->GetDecl());
37  }
38  virtual bool IsValid() const { return GetDecl(); }
39  virtual const char* Name();
40 };
41 
42 #endif // ROOT_TClingDeclInfo