Home | History | Annotate | Download | only in Sema

Lines Matching refs:Specialization

460   // If the argument type is a class template specialization, we
1304 // specialization type had been used.
1308 "injected class name is not a template specialization type");
2026 /// specialization.
2098 // arguments of the class template partial specialization, and
2150 /// partial specialization per C++ [temp.class.spec.match].
2156 // A partial specialization matches a given actual template
2158 // specialization can be deduced from the actual template argument
2485 /// the function template specialization.
2493 FunctionDecl *&Specialization,
2630 // declaration to produce the function template specialization.
2634 Specialization = cast_or_null<FunctionDecl>(
2637 if (!Specialization || Specialization->isInvalidDecl())
2640 assert(Specialization->getPrimaryTemplate()->getCanonicalDecl() ==
2644 // specialization, release it.
2645 if (Specialization->getTemplateSpecializationArgs() == DeducedArgumentList &&
2653 Specialization->setInvalidDecl(true);
2666 if (ParamIdx >= Specialization->getNumParams())
2669 QualType DeducedA = Specialization->getParamDecl(ParamIdx)->getType();
2677 // keep track of these diagnostics. They'll be emitted if this specialization
2681 Pos = SuppressedDiagnostics.find(Specialization->getCanonicalDecl());
2683 SuppressedDiagnostics[Specialization->getCanonicalDecl()]
2737 // But we can still look for an explicit specialization.
2763 FunctionDecl *Specialization = 0;
2766 Specialization, Info))
2769 D = Specialization;
2981 /// \param Specialization if template argument deduction was successful,
2982 /// this will be set to the function template specialization produced by
2993 FunctionDecl *&Specialization,
3219 Specialization, Info, &OriginalCallArgs);
3223 /// template (C++ [temp.deduct.funcaddr]) or matching a specialization to
3237 /// \param Specialization if template argument deduction was successful,
3238 /// this will be set to the function template specialization produced by
3249 FunctionDecl *&Specialization,
3290 Specialization, Info))
3294 // specialization, template argument deduction fails.
3296 !Context.hasSameType(ArgFunctionType, Specialization->getType()))
3304 /// conversion function template specialization.
3308 CXXConversionDecl *&Specialization,
3402 Specialization = cast_or_null<CXXConversionDecl>(Spec);
3415 /// \param Specialization if template argument deduction was successful,
3416 /// this will be set to the function template specialization produced by
3426 FunctionDecl *&Specialization,
3429 QualType(), Specialization, Info);
3934 /// specialization that is a candidate in the ambiguous ordering. One parameter
3936 /// describing the template arguments for the function template specialization.
3940 /// specialization.
3942 /// \returns the most specialized function template specialization, if
3972 assert(BestTemplate && "Not a function template specialization?");
3976 assert(Challenger && "Not a function template specialization?");
4025 /// \brief Returns the more specialized class template partial specialization
4029 /// \param PS1 the first class template partial specialization
4031 /// \param PS2 the second class template partial specialization
4033 /// \returns the more specialized class template partial specialization. If
4034 /// neither partial specialization is more specialized, returns NULL.
4047 // first partial specialization and has a single function parameter
4048 // whose type is a class template specialization with the template
4049 // arguments of the first partial specialization, and
4051 // second partial specialization and has a single function parameter
4052 // whose type is a class template specialization with the template
4053 // arguments of the second partial specialization.
4062 // template partial specialization's template arguments, for