clang 20.0.0git
Classes | Namespaces | Typedefs | Functions
DeclTemplate.h File Reference

Defines the C++ template declaration subclasses. More...

#include "clang/AST/ASTConcept.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/Redeclarable.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/iterator.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/TrailingObjects.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <optional>
#include <utility>

Go to the source code of this file.

Classes

class  clang::TemplateParameterList
 Stores a list of template parameters for a TemplateDecl and its derived classes. More...
 
class  clang::FixedSizeTemplateParameterListStorage< N, HasRequiresClause >
 Stores a list of template parameters and the associated requires-clause (if any) for a TemplateDecl and its derived classes. More...
 
class  clang::TemplateArgumentList
 A template argument list. More...
 
class  clang::DefaultArgStorage< ParmDecl, ArgType >
 Storage for a default argument. More...
 
class  clang::TemplateDecl
 The base class of all kinds of template declarations (e.g., class, function, etc.). More...
 
class  clang::FunctionTemplateSpecializationInfo
 Provides information about a function template specialization, which is a FunctionDecl that has been explicitly specialization or instantiated from a function template. More...
 
class  clang::MemberSpecializationInfo
 Provides information a specialization of a member of a class template, which may be a member function, static data member, member class or member enumeration. More...
 
class  clang::DependentFunctionTemplateSpecializationInfo
 Provides information about a dependent function-template specialization declaration. More...
 
class  clang::RedeclarableTemplateDecl
 Declaration of a redeclarable template. More...
 
struct  clang::RedeclarableTemplateDecl::SpecEntryTraits< EntryType >
 
struct  clang::RedeclarableTemplateDecl::SpecIterator< EntryType, SETraits, DeclType >
 
struct  clang::RedeclarableTemplateDecl::CommonBase
 
struct  clang::RedeclarableTemplateDecl::SpecEntryTraits< FunctionTemplateSpecializationInfo >
 
class  clang::FunctionTemplateDecl
 Declaration of a template function. More...
 
struct  clang::FunctionTemplateDecl::Common
 Data that is common to all of the declarations of a given function template. More...
 
class  clang::TemplateParmPosition
 Defines the position of a template parameter within a template parameter list. More...
 
class  clang::TemplateTypeParmDecl
 Declaration of a template type parameter. More...
 
class  clang::NonTypeTemplateParmDecl
 NonTypeTemplateParmDecl - Declares a non-type template parameter, e.g., "Size" in. More...
 
class  clang::TemplateTemplateParmDecl
 TemplateTemplateParmDecl - Declares a template template parameter, e.g., "T" in. More...
 
class  clang::BuiltinTemplateDecl
 Represents the builtin template declaration which is used to implement __make_integer_seq and other builtin templates. More...
 
struct  clang::ExplicitInstantiationInfo
 Provides information about an explicit instantiation of a variable or class template. More...
 
class  clang::ClassTemplateSpecializationDecl
 Represents a class template specialization, which refers to a class template with a given set of template arguments. More...
 
class  clang::ClassTemplatePartialSpecializationDecl
 
class  clang::ClassTemplateDecl
 Declaration of a class template. More...
 
struct  clang::ClassTemplateDecl::Common
 Data that is common to all of the declarations of a given class template. More...
 
class  clang::FriendTemplateDecl
 Declaration of a friend template. More...
 
class  clang::TypeAliasTemplateDecl
 Declaration of an alias template. More...
 
class  clang::VarTemplateSpecializationDecl
 Represents a variable template specialization, which refers to a variable template with a given set of template arguments. More...
 
class  clang::VarTemplatePartialSpecializationDecl
 
class  clang::VarTemplateDecl
 Declaration of a variable template. More...
 
struct  clang::VarTemplateDecl::Common
 Data that is common to all of the declarations of a given variable template. More...
 
class  clang::ConceptDecl
 Declaration of a C++20 concept. More...
 
class  clang::ImplicitConceptSpecializationDecl
 
class  clang::TemplateParamObjectDecl
 A template parameter object. More...
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 

Typedefs

using clang::TemplateParameter = llvm::PointerUnion< TemplateTypeParmDecl *, NonTypeTemplateParmDecl *, TemplateTemplateParmDecl * >
 Stores a template parameter of any kind.
 
using clang::SpecializationOrInstantiationInfo = llvm::PointerUnion< const ASTTemplateArgumentListInfo *, ExplicitInstantiationInfo * >
 

Functions

NamedDecl * clang::getAsNamedDecl (TemplateParameter P)
 
void * clang::allocateDefaultArgStorageChain (const ASTContext &C)
 
TemplateDecl * clang::getAsTypeTemplateDecl (Decl *D)
 
std::optional< unsignedclang::getExpandedPackSize (const NamedDecl *Param)
 Check whether the template parameter is a pack expansion, and if so, determine the number of parameters produced by that expansion.
 
TemplateParameterListclang::getReplacedTemplateParameterList (Decl *D)
 Internal helper used by Subst* nodes to retrieve the parameter list for their AssociatedDecl.
 

Detailed Description

Defines the C++ template declaration subclasses.

Definition in file DeclTemplate.h.