//===-- DeclCXX.h - Classes for representing C++ declarations -*- C++ -*-=====////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file defines the C++ Decl subclasses.////===----------------------------------------------------------------------===//#ifndef LLVM_CLANG_AST_DECLCXX_H#define LLVM_CLANG_AST_DECLCXX_H#include"clang/AST/Expr.h"#include"clang/AST/Decl.h"#include"llvm/ADT/SmallVector.h"namespaceclang{classClassTemplateDecl;classCXXRecordDecl;classCXXConstructorDecl;classCXXDestructorDecl;classCXXConversionDecl;classCXXMethodDecl;classClassTemplateSpecializationDecl;/// \brief Represents any kind of function declaration, whether it is a /// concrete function or a function template.classAnyFunctionDecl{NamedDecl*Function;AnyFunctionDecl(NamedDecl*ND):Function(ND){}public:AnyFunctionDecl(FunctionDecl*FD):Function(FD){}AnyFunctionDecl(FunctionTemplateDecl*FTD);/// \brief Implicily converts any function or function template into a /// named declaration.operatorNamedDecl*()const{returnFunction;}/// \brief Retrieve the underlying function or function template.NamedDecl