Home | History | Annotate | Download | only in AST

Lines Matching defs:TemplateArgument

40 class TemplateArgument {
87 // TemplateArgument instances.
99 const TemplateArgument *Args;
118 TemplateArgument(TemplateName, bool) = delete;
122 constexpr TemplateArgument() : TypeOrValue({Null, 0}) {}
125 TemplateArgument(QualType T, bool isNullPtr = false) {
133 TemplateArgument(ValueDecl *D, QualType QT) {
142 TemplateArgument(ASTContext &Ctx, const llvm::APSInt &Value, QualType Type);
146 TemplateArgument(const TemplateArgument &Other, QualType Type) {
159 TemplateArgument(TemplateName Name) {
176 TemplateArgument(TemplateName Name, Optional<unsigned> NumExpansions) {
190 TemplateArgument(Expr *E) {
198 /// outlives the TemplateArgument itself.
199 explicit TemplateArgument(ArrayRef<TemplateArgument> Args) {
205 static TemplateArgument getEmptyPack() { return TemplateArgument(None); }
209 static TemplateArgument CreatePackCopy(ASTContext &Context,
210 ArrayRef<TemplateArgument> Args);
312 typedef const TemplateArgument * pack_iterator;
330 ArrayRef<TemplateArgument> pack_elements() const {
342 ArrayRef<TemplateArgument> getPackAsArray() const {
349 bool structurallyEquals(const TemplateArgument &Other) const;
353 TemplateArgument getPackExpansionPattern() const;
368 /// Location information for a TemplateArgument.
426 /// Location wrapper for a TemplateArgument. TemplateArgument is to
429 TemplateArgument Argument;
435 TemplateArgumentLoc(const TemplateArgument &Argument,
440 TemplateArgumentLoc(const TemplateArgument &Argument, TypeSourceInfo *TInfo)
442 assert(Argument.getKind() == TemplateArgument::Type);
445 TemplateArgumentLoc(const TemplateArgument &Argument, Expr *E)
447 assert(Argument.getKind() == TemplateArgument::Expression);
450 TemplateArgumentLoc(const TemplateArgument &Argument,
455 assert(Argument.getKind() == TemplateArgument::Template ||
456 Argument.getKind() == TemplateArgument::TemplateExpansion);
461 if (Argument.getKind() == TemplateArgument::Template ||
462 Argument.getKind() == TemplateArgument::TemplateExpansion)
471 const TemplateArgument &getArgument() const {
480 TemplateArgument::Type);
485 assert(Argument.getKind() == TemplateArgument::Expression);
490 assert(Argument.getKind() == TemplateArgument::Declaration);
495 assert(Argument.getKind() == TemplateArgument::NullPtr);
500 assert(Argument.getKind() == TemplateArgument::Integral);
505 assert(Argument.getKind() == TemplateArgument::Template ||
506 Argument.getKind() == TemplateArgument::TemplateExpansion);
511 assert(Argument.getKind() == TemplateArgument::Template ||
512 Argument.getKind() == TemplateArgument::TemplateExpansion);
517 assert(Argument.getKind() == TemplateArgument::TemplateExpansion);
647 const TemplateArgument &Arg);
659 inline const TemplateArgument &
665 inline const TemplateArgument &