clang  3.9.0
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ClassScopeFunctionSpecializationDecl Class Reference

Declaration of a function specialization at template class scope. More...

#include <DeclTemplate.h>

Inheritance diagram for clang::ClassScopeFunctionSpecializationDecl:
[legend]
Collaboration diagram for clang::ClassScopeFunctionSpecializationDecl:
[legend]

Public Member Functions

CXXMethodDeclgetSpecialization () const
 
bool hasExplicitTemplateArgs () const
 
const TemplateArgumentListInfotemplateArgs () const
 

Static Public Member Functions

static
ClassScopeFunctionSpecializationDecl
Create (ASTContext &C, DeclContext *DC, SourceLocation Loc, CXXMethodDecl *FD, bool HasExplicitTemplateArgs, TemplateArgumentListInfo TemplateArgs)
 
static
ClassScopeFunctionSpecializationDecl
CreateDeserialized (ASTContext &Context, unsigned ID)
 
static bool classof (const Decl *D)
 
static bool classofKind (Kind K)
 

Friends

class ASTDeclReader
 
class ASTDeclWriter
 

Detailed Description

Declaration of a function specialization at template class scope.

This is a non-standard extension needed to support MSVC.

For example:

template <class T>
class A {
template <class U> void foo(U a) { }
template<> void foo(int a) { }
}

"template<> foo(int a)" will be saved in Specialization as a normal CXXMethodDecl. Then during an instantiation of class A, it will be transformed into an actual function specialization.

Definition at line 2312 of file DeclTemplate.h.

Member Function Documentation

static bool clang::ClassScopeFunctionSpecializationDecl::classof ( const Decl D)
inlinestatic

Definition at line 2348 of file DeclTemplate.h.

static bool clang::ClassScopeFunctionSpecializationDecl::classofKind ( Kind  K)
inlinestatic

Definition at line 2349 of file DeclTemplate.h.

static ClassScopeFunctionSpecializationDecl* clang::ClassScopeFunctionSpecializationDecl::Create ( ASTContext C,
DeclContext DC,
SourceLocation  Loc,
CXXMethodDecl FD,
bool  HasExplicitTemplateArgs,
TemplateArgumentListInfo  TemplateArgs 
)
inlinestatic

Definition at line 2334 of file DeclTemplate.h.

Referenced by clang::Sema::ActOnFunctionDeclarator().

ClassScopeFunctionSpecializationDecl * ClassScopeFunctionSpecializationDecl::CreateDeserialized ( ASTContext Context,
unsigned  ID 
)
static

Definition at line 924 of file DeclTemplate.cpp.

References ID.

CXXMethodDecl* clang::ClassScopeFunctionSpecializationDecl::getSpecialization ( ) const
inline
bool clang::ClassScopeFunctionSpecializationDecl::hasExplicitTemplateArgs ( ) const
inline

Definition at line 2331 of file DeclTemplate.h.

const TemplateArgumentListInfo& clang::ClassScopeFunctionSpecializationDecl::templateArgs ( ) const
inline

Definition at line 2332 of file DeclTemplate.h.

Friends And Related Function Documentation

friend class ASTDeclReader
friend

Definition at line 2353 of file DeclTemplate.h.

friend class ASTDeclWriter
friend

Definition at line 2354 of file DeclTemplate.h.


The documentation for this class was generated from the following files: