|
2600 | 2600 | \begin{bnf} |
2601 | 2601 | \nontermdef{return-type-requirement}\br |
2602 | 2602 | trailing-return-type\br |
2603 | | - \terminal{->} qualified-concept-name |
| 2603 | + \terminal{->} type-constraint |
2604 | 2604 | \end{bnf} |
2605 | 2605 |
|
2606 | 2606 | \pnum |
|
2631 | 2631 | If conversion fails, the enclosing \grammarterm{requires-expression} |
2632 | 2632 | is \tcode{false}. |
2633 | 2633 | \item |
2634 | | - If the \grammarterm{return-type-requirement} has a |
2635 | | - a \grammarterm{qualified-concept-name}\iref{temp.param} of the form |
2636 | | - \opt{\grammarterm{nested-name-specifier}} \grammarterm{concept-name}, |
2637 | | - the concept it denotes shall be satisfied with |
2638 | | - \tcode{decltype((E))} as its sole argument. |
2639 | | - If the \grammarterm{return-type-requirement} has a |
2640 | | - a \grammarterm{qualified-concept-name} of the form |
2641 | | - \opt{\grammarterm{nested-name-specifier}} \grammarterm{concept-name} |
2642 | | - \tcode{<} \opt{\grammarterm{template-argument-list}} \tcode{>}, |
2643 | | - the concept it denotes shall be satisfied with |
2644 | | - \tcode{decltype((E))} as its first argument and with |
2645 | | - the elements, in the order listed, of |
2646 | | - the \grammarterm{template-argument-list} |
2647 | | - comprising the concept’s subsequent arguments. |
| 2634 | + If the \grammarterm{return-type-requirement} |
| 2635 | + is of the form \tcode{->} \grammarterm{type-constraint}, then |
| 2636 | + the contextually-determined type being constrained |
| 2637 | + is \tcode{decltype((E))}. |
| 2638 | + The immediately-declared constraint\iref(temp) of \tcode{decltype((E))} |
| 2639 | + shall be satisfied. |
2648 | 2640 | \begin{note} |
2649 | 2641 | Thus, constraints of the form |
2650 | 2642 | \tcode{\{ E \} -> Concept;} or of the form |
|
0 commit comments