Lines Matching defs:specialization

211    to DECL, unless it is a specialization, in which case the DECL
537 /* This routine is called when a specialization is declared. If it is
538 invalid to declare a specialization here, an error is reported and
548 An explicit specialization shall be declared in the namespace of
551 template is a member. An explicit specialization of a member
557 error ("explicit specialization in non-namespace scope %qD", scope);
563 In an explicit specialization declaration for a member of a class
599 function specialization. */
612 note_template_header (int specialization)
614 processing_specialization = specialization;
635 /* An explicit specialization or partial specialization TMPL is being
636 declared. Check that the namespace in which the specialization is
647 An explicit specialization shall be declared in the namespace of
650 template is a member. An explicit specialization of a member
659 pedwarn ("specialization of %qD in different namespace", tmpl);
683 is a partial specialization. Do appropriate error-checking. */
704 /* This is for ordinary explicit specialization and partial
705 specialization of a template class such as:
724 error ("specialization of %qT after instantiation", type);
732 /* This is for an explicit specialization of member class
744 In the first case, `C<int>::D' is a specialization of `C<T>::D'
761 /* Check for invalid specialization after instantiation:
771 error ("specialization %qT after instantiation %qT",
774 /* Mark TYPE as a specialization. And as a result, we only
784 error ("explicit specialization of non-template %qT", type);
807 specialization. */
824 /* Retrieve the specialization (in the sense of [temp.spec] - a
825 specialization is either an instantiation or an explicit
826 specialization) of TMPL for the given template ARGS. If there is
827 no such specialization, return NULL_TREE. The ARGS are a vector of
832 then we search for a partial specialization matching ARGS. This
858 class. Find the class specialization with those
867 for the specialization. */
930 /* Returns nonzero iff DECL is a specialization of TMPL. */
960 /* Returns nonzero iff DECL is a specialization of friend declaration
973 of a template class, we want to check if DECL is a specialization
997 every specialization of the class template is a friend of the
1012 check if the enclosing class is a specialization of another. */
1142 /* Register the specialization SPEC as a specialization of TMPL with
1143 the indicated ARGS. IS_FRIEND indicates whether the specialization
1171 /* We can sometimes try to re-register a specialization that we've
1173 duplicate_decls which will update the specialization list. But,
1185 error ("specialization of %qD after instantiation",
1193 specialization is an implicit instantiation, the
1194 second is an explicit specialization, and the
1202 specialization:
1213 for the specialization, we want this to look as if
1220 An explicit specialization of a function template
1251 /* A specialization must be declared in the same namespace as the
1264 /* Unregister the specialization SPEC as a specialization of TMPL.
1266 if the SPEC was listed as a specialization of TMPL. */
1356 specialization of a member template.
1385 /* A TREE_LIST of templates of which DECL may be a specialization.
1416 specialization. */
1432 /* In case of explicit specialization, we need to check if
1433 the number of template headers appearing in the specialization
1441 Assuming that A<int> is not itself an explicit specialization
1448 Here, we can do better, as we are matching the specialization
1456 specialization but rather a template instantiation, so there
1470 /* DECL might be a specialization of FN. */
1485 full specialization of a constructor will have a VTT
1496 The specialization f<int> is invalid but is not caught
1512 /* See whether this function might be a specialization of this
1526 specialization of a member template. */
1534 be a specialization of that. */
1555 /* Its enclosing class is an explicit specialization
1583 It is possible for a specialization with a given function
1587 function template specialization being specialized.
1598 specialization refers:
1600 -- when an explicit specialization refers to a function
1628 error ("ambiguous template specialization %qD for %q+D",
1642 /* It was a specialization of an ordinary member function in a
1648 /* It was a specialization of a template. */
1689 /* DECL is an explicit specialization. Replicate default arguments
1781 DECLARATOR, and in DECL, is a specialization of a function
1812 If the function is a specialization, it is marked as such via
1825 int specialization = 0;
1847 specialization = 1;
1857 specialization = 1;
1895 error("explicit specialization of %qD must be introduced by "
1904 specialization = 1;
1914 error ("function template partial specialization %qD "
1923 /* This is a specialization of a member template, without
1924 specialization the containing class. Something like:
1931 That's a specialization -- but of the entire template. */
1932 specialization = 1;
1939 if (specialization || member_specialization)
1946 ("default argument specified in explicit specialization");
1951 if (specialization || member_specialization || explicit_instantiation)
1998 /* A specialization in class scope. This is invalid,
2040 If such an explicit specialization for the member
2046 error ("specialization of implicitly-declared special member function");
2066 int' which will be a specialization of `operator T'.
2154 /* If this is a specialization of a member template of a
2156 the specialization of it. */
2181 /* This specialization has the same protection as the
2201 /* This is not really a declaration of a specialization.
2206 /* This is indeed a specialization. In case of constructors
2211 /* Register this specialization so that we can find it
2620 /* The index of the specialization argument we are currently
2636 parameter in a partial specialization is used in the explicit
2670 /* Process the partial specialization DECL. */
2689 partial specialization is used in the argument list to the
2690 specialization. For example:
2712 full-specialization. Of course,
2736 specialization. */
2739 error ("template parameters not used in partial specialization:");
2748 The argument list of the specialization shall not be identical to
2754 error ("partial specialization %qT does not specialize any template arguments", type);
2759 involve template parameters of the partial specialization except
2764 specialization. */
2804 template, not in the specialization. */
2817 specialization, that's OK. */
2836 /* We've already got this specialization. */
2849 IS_PARTIAL is nonzero if DECL is a partial specialization. */
2927 but, in a partial specialization, they're not allowed even
2930 The template parameter list of a specialization shall not
2933 So, for a partial specialization, or for a function template,
2938 specialization we look at all template parameters except the
3041 /* See if this is a partial specialization. */
3165 /* A specialization of a member template of a template
3206 /* The declaration is a specialization of a member
3306 back to its most general template. If TMPL is a specialization,
4085 /* We only form one instance of each template specialization.
4752 /* If we already have this specialization, return it. */
5445 run through all specialization of `f', adding to their
5701 /* Determine what specialization of the original template to
5712 specialization. We replace the innermost set of ARGS with
6589 specialization, and the complete set of arguments used to
6596 /* Check to see if we already have this specialization. */
6607 there was a specialization of a member template, like
6613 Here, we'll be substituting into the specialization,
6637 specialization in this case. */
6894 /* Check to see if we already have the specialization we
6916 specialization we want. That situation occurs when
6943 /* If we already have the specialization we need, there is
6951 /* Create a new node for the specialization we need. */
9598 /* Check to see if we already have this specialization. */
9613 /* Check to see if we already have this specialization. */
9639 /* Substitute template parameters to obtain the specialization. */
9646 /* Now we know the specialization, compute access previously
9676 specialization, RETURN_TYPE is the return type desired.
9693 as in [temp.explicit], when determining an explicit specialization
10277 a partial specialization, as well as a plain template type. Used
11236 to the first partial specialization. The TREE_VALUE is the
11238 specialization. PAT2 is similar, but for the second template.
11240 Return 1 if the first partial specialization is more specialized;
11336 template specialization whose innermost template parameters are
11337 TPARMS, and whose specialization arguments are PARMS, yield the
11470 /* If DECL is a specialization of some template, return the most
11490 an immediate specialization. */
11529 specializations of TMPL which can produce TYPE, a specialization of
11531 a _TYPE node corresponding to the partial specialization, while the
11535 If the choice of partial specialization is ambiguous, a diagnostic
11673 specialization shall not appear in a program unless the explicit
11674 instantiation follows a declaration of the explicit specialization.
11678 explicit specialization for that template, the explicit
11824 specialization shall not appear in a program unless the explicit
11825 instantiation follows a declaration of the explicit specialization.
11829 explicit specialization for that template, the explicit
11869 The explicit instantiation of a class template specialization
11896 /* Given a function DECL, which is a specialization of TMPL, modify
12013 specialization S<T>::f<int>, not the more general S<T>::f<U>. */
12043 a specialization was declared, but not defined. */
12104 /* If we already have a specialization of this declaration, then
12128 template or partial specialization. */
12588 /* DECL is a FUNCTION_DECL that is a template specialization. Return
13226 /* Returns TRUE if the specialization TMPL<ARGS> is dependent. */