clang  3.9.0
Public Member Functions | List of all members
ExplicitSpecializationVisibilityChecker Class Reference

Walk the path from which a declaration was instantiated, and check that every explicit specialization along that path is visible. More...

Public Member Functions

 ExplicitSpecializationVisibilityChecker (Sema &S, SourceLocation Loc)
 
void check (NamedDecl *ND)
 

Detailed Description

Walk the path from which a declaration was instantiated, and check that every explicit specialization along that path is visible.

This enforces C++ [temp.expl.spec]/6:

If a template, a member template or a member of a class template is explicitly specialized then that specialization shall be declared before the first use of that specialization that would cause an implicit instantiation to take place, in every translation unit in which such a use occurs; no diagnostic is required.

and also C++ [temp.class.spec]/1:

A partial specialization shall be declared before the first use of a class template specialization that would make use of the partial specialization as the result of an implicit or explicit instantiation in every translation unit in which such a use occurs; no diagnostic is required.

Definition at line 8628 of file SemaTemplate.cpp.

Constructor & Destructor Documentation

ExplicitSpecializationVisibilityChecker::ExplicitSpecializationVisibilityChecker ( Sema S,
SourceLocation  Loc 
)
inline

Definition at line 8634 of file SemaTemplate.cpp.

Member Function Documentation

void ExplicitSpecializationVisibilityChecker::check ( NamedDecl ND)
inline

Definition at line 8637 of file SemaTemplate.cpp.

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


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