Lines Matching defs:Argument
36 /// \brief Represents a template argument within a class template
40 /// \brief The kind of template argument we're storing.
42 /// \brief Represents an empty template argument, e.g., one that has not
45 /// The template argument is a type. Its value is stored in the
48 /// The template argument is a declaration that was provided for a pointer
51 /// The template argument is an integral value stored in an llvm::APSInt
54 /// The template argument is a template name that was provided for a
57 /// The template argument is a pack expansion of a template name that was
60 /// The template argument is a value- or type-dependent expression
63 /// The template argument is actually a parameter pack. Arguments are stored
69 /// \brief The kind of template argument we're storing.
91 /// \brief Construct an empty, invalid template argument.
94 /// \brief Construct a template type argument.
99 /// \brief Construct a template argument that refers to a
107 /// \brief Construct an integral constant template argument.
115 /// \brief Construct a template argument that is a template.
117 /// This form of template argument is generally used for template template
129 /// \brief Construct a template argument that is a template pack expansion.
131 /// This form of template argument is generally used for template template
150 /// \brief Construct a template argument that is an expression.
152 /// This form of template argument only occurs in template argument
154 /// occur in a non-dependent, canonical template argument list.
159 /// \brief Construct a template argument that is a template argument pack.
168 /// \brief Copy constructor for a template argument.
224 /// \brief Create a new template argument pack by copying the given set of
230 /// \brief Return the kind of stored template argument.
233 /// \brief Determine whether this template argument has no value.
236 /// \brief Whether this template argument is dependent on a template
241 /// \brief Whether this template argument is dependent on a template
245 /// \brief Whether this template argument contains an unexpanded
249 /// \brief Determine whether this template argument is a pack expansion.
252 /// \brief Retrieve the template argument as a type.
260 /// \brief Retrieve the template argument as a declaration.
267 /// \brief Retrieve the template argument as a template name.
275 /// \brief Retrieve the template argument as a template name; if the argument
284 /// \brief Retrieve the number of expansions that a template template argument
288 /// \brief Retrieve the template argument as an integral value.
309 "Cannot set the integral type of a non-integral template argument");
313 /// \brief Retrieve the template argument as an expression.
321 /// \brief Iterator that traverses the elements of a template argument pack.
324 /// \brief Iterator referencing the first argument of a template argument
331 /// \brief Iterator referencing one past the last argument of a template
332 /// argument pack.
338 /// \brief The number of template arguments in the given template argument
349 /// \brief When the template argument is a pack expansion, returns
355 /// \brief Print this template argument to the given output stream.
420 TemplateArgument Argument;
426 TemplateArgumentLoc(const TemplateArgument &Argument,
428 : Argument(Argument), LocInfo(Opaque) {
431 TemplateArgumentLoc(const TemplateArgument &Argument, TypeSourceInfo *TInfo)
432 : Argument(Argument), LocInfo(TInfo) {
433 assert(Argument.getKind() == TemplateArgument::Type);
436 TemplateArgumentLoc(const TemplateArgument &Argument, Expr *E)
437 : Argument(Argument), LocInfo(E) {
438 assert(Argument.getKind() == TemplateArgument::Expression);
441 TemplateArgumentLoc(const TemplateArgument &Argument,
445 : Argument(Argument), LocInfo(QualifierLoc, TemplateNameLoc, EllipsisLoc) {
446 assert(Argument.getKind() == TemplateArgument::Template ||
447 Argument.getKind() == TemplateArgument::TemplateExpansion);
450 /// \brief - Fetches the primary location of the argument.
452 if (Argument.getKind() == TemplateArgument::Template ||
453 Argument.getKind() == TemplateArgument::TemplateExpansion)
459 /// \brief - Fetches the full source range of the argument.
463 return Argument;
471 assert(Argument.getKind() == TemplateArgument::Type);
476 assert(Argument.getKind() == TemplateArgument::Expression);
481 assert(Argument.getKind() == TemplateArgument::Declaration);
486 assert(Argument.getKind() == TemplateArgument::Template ||
487 Argument.getKind() == TemplateArgument::TemplateExpansion);
492 assert(Argument.getKind() == TemplateArgument::Template ||
493 Argument.getKind() == TemplateArgument::TemplateExpansion);
498 assert(Argument.getKind() == TemplateArgument::TemplateExpansion);
502 /// \brief When the template argument is a pack expansion, returns
514 /// A convenient class for passing around template argument
553 /// \brief Represents an explicit template argument list in C++, e.g.,
610 assert(Idx < getNumArgs() && "Template argument out of range");
616 assert(Idx < getNumArgs() && "Template argument out of range");