clang  3.9.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
clang::DependentFunctionTemplateSpecializationInfo Class Referencefinal

Provides information about a dependent function-template specialization declaration. More...

#include <DeclTemplate.h>

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

Public Member Functions

unsigned getNumTemplates () const
 Returns the number of function templates that this might be a specialization of. More...
 
FunctionTemplateDeclgetTemplate (unsigned I) const
 Returns the i'th template candidate. More...
 
const TemplateArgumentLocgetTemplateArgs () const
 Returns the explicit template arguments that were given. More...
 
unsigned getNumTemplateArgs () const
 Returns the number of explicit template arguments that were given. More...
 
const TemplateArgumentLocgetTemplateArg (unsigned I) const
 Returns the nth template argument. More...
 
SourceLocation getLAngleLoc () const
 
SourceLocation getRAngleLoc () const
 

Static Public Member Functions

static
DependentFunctionTemplateSpecializationInfo
Create (ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo &TemplateArgs)
 

Public Attributes

friend TrailingObjects
 

Detailed Description

Provides information about a dependent function-template specialization declaration.

Since explicit function template specialization and instantiation declarations can only appear in namespace scope, and you can only specialize a member of a fully-specialized class, the only way to get one of these is in a friend declaration like the following:

template \<class T> void foo(T);
template \<class T> class A {
friend void foo<>(T);
};

Definition at line 564 of file DeclTemplate.h.

Member Function Documentation

DependentFunctionTemplateSpecializationInfo * DependentFunctionTemplateSpecializationInfo::Create ( ASTContext Context,
const UnresolvedSetImpl Templates,
const TemplateArgumentListInfo TemplateArgs 
)
static
SourceLocation clang::DependentFunctionTemplateSpecializationInfo::getLAngleLoc ( ) const
inline

Definition at line 617 of file DeclTemplate.h.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

unsigned clang::DependentFunctionTemplateSpecializationInfo::getNumTemplateArgs ( ) const
inline

Returns the number of explicit template arguments that were given.

Definition at line 609 of file DeclTemplate.h.

References clang::NumArgs.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

unsigned clang::DependentFunctionTemplateSpecializationInfo::getNumTemplates ( ) const
inline

Returns the number of function templates that this might be a specialization of.

Definition at line 595 of file DeclTemplate.h.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

SourceLocation clang::DependentFunctionTemplateSpecializationInfo::getRAngleLoc ( ) const
inline

Definition at line 621 of file DeclTemplate.h.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

FunctionTemplateDecl* clang::DependentFunctionTemplateSpecializationInfo::getTemplate ( unsigned  I) const
inline

Returns the i'th template candidate.

Definition at line 598 of file DeclTemplate.h.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

const TemplateArgumentLoc& clang::DependentFunctionTemplateSpecializationInfo::getTemplateArg ( unsigned  I) const
inline

Returns the nth template argument.

Definition at line 612 of file DeclTemplate.h.

References I.

Referenced by clang::ASTDeclWriter::VisitFunctionDecl().

const TemplateArgumentLoc* clang::DependentFunctionTemplateSpecializationInfo::getTemplateArgs ( ) const
inline

Returns the explicit template arguments that were given.

Definition at line 604 of file DeclTemplate.h.

Member Data Documentation

friend clang::DependentFunctionTemplateSpecializationInfo::TrailingObjects

Definition at line 625 of file DeclTemplate.h.


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