Lines Matching refs:Specialization
459 // If the argument type is a class template specialization, we
1266 // specialization type had been used.
1270 "injected class name is not a template specialization type");
1994 /// specialization.
2065 // arguments of the class template partial specialization, and
2117 /// partial specialization per C++ [temp.class.spec.match].
2123 // A partial specialization matches a given actual template
2125 // specialization can be deduced from the actual template argument
2417 /// the function template specialization.
2425 FunctionDecl *&Specialization,
2562 // declaration to produce the function template specialization.
2566 Specialization = cast_or_null<FunctionDecl>(
2569 if (!Specialization)
2572 assert(Specialization->getPrimaryTemplate()->getCanonicalDecl() ==
2576 // specialization, release it.
2577 if (Specialization->getTemplateSpecializationArgs() == DeducedArgumentList &&
2590 if (ParamIdx >= Specialization->getNumParams())
2593 QualType DeducedA = Specialization->getParamDecl(ParamIdx)->getType();
2603 Specialization->setInvalidDecl(true);
2609 // keep track of these diagnostics. They'll be emitted if this specialization
2613 Pos = SuppressedDiagnostics.find(Specialization->getCanonicalDecl());
2615 SuppressedDiagnostics[Specialization->getCanonicalDecl()]
2663 // unambiguously name a full specialization.
2665 // But we can still look for an explicit specialization.
2864 /// \param Specialization if template argument deduction was successful,
2865 /// this will be set to the function template specialization produced by
2876 FunctionDecl *&Specialization,
3059 Specialization, Info, &OriginalCallArgs);
3063 /// template (C++ [temp.deduct.funcaddr]) or matching a specialization to
3077 /// \param Specialization if template argument deduction was successful,
3078 /// this will be set to the function template specialization produced by
3089 FunctionDecl *&Specialization,
3130 Specialization, Info))
3134 // specialization, template argument deduction fails.
3136 !Context.hasSameType(ArgFunctionType, Specialization->getType()))
3144 /// conversion function template specialization.
3148 CXXConversionDecl *&Specialization,
3242 Specialization = cast_or_null<CXXConversionDecl>(Spec);
3255 /// \param Specialization if template argument deduction was successful,
3256 /// this will be set to the function template specialization produced by
3266 FunctionDecl *&Specialization,
3269 QualType(), Specialization, Info);
3732 /// specialization that is a candidate in the ambiguous ordering. One parameter
3734 /// describing the template arguments for the function template specialization.
3738 /// specialization.
3740 /// \returns the most specialized function template specialization, if
3769 assert(BestTemplate && "Not a function template specialization?");
3773 assert(Challenger && "Not a function template specialization?");
3817 /// \brief Returns the more specialized class template partial specialization
3821 /// \param PS1 the first class template partial specialization
3823 /// \param PS2 the second class template partial specialization
3825 /// \returns the more specialized class template partial specialization. If
3826 /// neither partial specialization is more specialized, returns NULL.
3839 // first partial specialization and has a single function parameter
3840 // whose type is a class template specialization with the template
3841 // arguments of the first partial specialization, and
3843 // second partial specialization and has a single function parameter
3844 // whose type is a class template specialization with the template
3845 // arguments of the second partial specialization.
3854 // template partial specialization's template arguments, for