reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  218     return Y;
  219   if (Y.isNull())
  227   if (!X.wasDeducedFromArrayBound() && !Y.wasDeducedFromArrayBound()) {
  230       QualType YType = Y.getNonTypeTemplateArgumentType();
  242     if (Y.getKind() == TemplateArgument::Type &&
  243         Context.hasSameType(X.getAsType(), Y.getAsType()))
  248     if (X.wasDeducedFromArrayBound() != Y.wasDeducedFromArrayBound())
  249       return X.wasDeducedFromArrayBound() ? Y : X;
  258     if (Y.getKind() == TemplateArgument::Expression ||
  259         Y.getKind() == TemplateArgument::Declaration ||
  260         (Y.getKind() == TemplateArgument::Integral &&
  261          hasSameExtendedValue(X.getAsIntegral(), Y.getAsIntegral())))
  262       return X.wasDeducedFromArrayBound() ? Y : X;
  268     if (Y.getKind() == TemplateArgument::Template &&
  269         Context.hasSameTemplateName(X.getAsTemplate(), Y.getAsTemplate()))
  276     if (Y.getKind() == TemplateArgument::TemplateExpansion &&
  278                                     Y.getAsTemplateOrTemplatePattern()))
  285     if (Y.getKind() != TemplateArgument::Expression)
  286       return checkDeducedTemplateArguments(Context, Y, X);
  291     Y.getAsExpr()->Profile(ID2, Context, true);
  293       return X.wasDeducedFromArrayBound() ? Y : X;
  304     if (Y.getKind() == TemplateArgument::Expression)
  310     if (Y.getKind() == TemplateArgument::Integral) {
  311       if (Y.wasDeducedFromArrayBound())
  312         return TemplateArgument(Context, Y.getAsIntegral(),
  314       return Y;
  319     if (Y.getKind() == TemplateArgument::Declaration &&
  320         isSameDeclaration(X.getAsDecl(), Y.getAsDecl()))
  329     if (Y.getKind() == TemplateArgument::Expression)
  334     if (Y.getKind() == TemplateArgument::Integral)
  335       return Y;
  338     if (Y.getKind() == TemplateArgument::NullPtr)
  345     if (Y.getKind() != TemplateArgument::Pack ||
  346         X.pack_size() != Y.pack_size())
  352                                          YA = Y.pack_begin();
  356           DeducedTemplateArgument(*YA, Y.wasDeducedFromArrayBound()));
  364         X.wasDeducedFromArrayBound() && Y.wasDeducedFromArrayBound());