clang
3.9.0
|
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) |
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.
|
inline |
Definition at line 8634 of file SemaTemplate.cpp.
|
inline |
Definition at line 8637 of file SemaTemplate.cpp.
Referenced by clang::Sema::checkSpecializationVisibility().