|
1295 | 1295 | whose template parameter list is that of \tcode{A} and |
1296 | 1296 | whose template argument list is a specialization of \tcode{A} with |
1297 | 1297 | the template argument list of \tcode{A}\iref{temp.dep.type} |
1298 | | -having a member typedef type designating a template specialization with |
| 1298 | +having a member typedef \tcode{type} designating a template specialization with |
1299 | 1299 | the template argument list of \tcode{A} but |
1300 | 1300 | with \tcode{C} as the template. |
1301 | 1301 | \begin{note} |
|
1316 | 1316 | }; |
1317 | 1317 | template <typename T> struct D : public B<T> {}; |
1318 | 1318 |
|
1319 | | -C c(42); // OK, \tcode{deduces C<int>} |
1320 | | -D d(42); // Error: deduction failed, no inherited deduction guides |
| 1319 | +C c(42); // OK, deduces \tcode{C<int>} |
| 1320 | +D d(42); // error: deduction failed, no inherited deduction guides |
1321 | 1321 | B(int) -> B<char>; |
1322 | 1322 | C c2(42); // OK, deduces \tcode{C<char>} |
1323 | 1323 |
|
1324 | 1324 | template <typename T> struct E : public B<int> { |
1325 | 1325 | using B<int>::B; |
1326 | 1326 | }; |
1327 | 1327 |
|
1328 | | -E e(42); // Error: deduction failed, arguments of \tcode{E} cannot be deduced from guides introduced |
| 1328 | +E e(42); // error: deduction failed, arguments of \tcode{E} cannot be deduced from guides introduced |
1329 | 1329 |
|
1330 | 1330 | template <typename T, typename U, typename V> struct F { |
1331 | 1331 | F(T, U, V); |
|
1805 | 1805 | \end{example} |
1806 | 1806 | or, if not that, |
1807 | 1807 |
|
1808 | | -\item |
1809 | | -\tcode{F1} and \tcode{F2} are generated |
1810 | | -from class template argument deduction\iref{over.match.class.deduct} |
1811 | | -for a class \tcode{D}, and |
1812 | | -\tcode{F2} is generated |
1813 | | -from inheriting constructors from a base class of \tcode{D} |
1814 | | -while \tcode{F1} is not, and |
1815 | | -for each explicit function argument, |
1816 | | -the corresponding parameters of \tcode{F1} and \tcode{F2} |
1817 | | -are either both ellipses or have the same type, |
1818 | | -or, if not that, |
1819 | | - |
1820 | 1808 | \item |
1821 | 1809 | \tcode{F1} and \tcode{F2} are rewritten candidates, and |
1822 | 1810 | \tcode{F2} is a synthesized candidate |
|
1833 | 1821 | \end{example} |
1834 | 1822 | or, if not that |
1835 | 1823 |
|
| 1824 | +\item |
| 1825 | +\tcode{F1} and \tcode{F2} are generated |
| 1826 | +from class template argument deduction\iref{over.match.class.deduct} |
| 1827 | +for a class \tcode{D}, and |
| 1828 | +\tcode{F2} is generated |
| 1829 | +from inheriting constructors from a base class of \tcode{D} |
| 1830 | +while \tcode{F1} is not, and |
| 1831 | +for each explicit function argument, |
| 1832 | +the corresponding parameters of \tcode{F1} and \tcode{F2} |
| 1833 | +are either both ellipses or have the same type, |
| 1834 | +or, if not that, |
| 1835 | + |
1836 | 1836 | \item |
1837 | 1837 | \tcode{F1} is generated from a |
1838 | 1838 | \grammarterm{deduction-guide}\iref{over.match.class.deduct} |
|
0 commit comments