|
1369 | 1369 | \item
|
1370 | 1370 | \tcode{is_constructible_v<$\tcode{T}_i$, const $\tcode{U}_i$\&>} is \tcode{true} for all $i$, and
|
1371 | 1371 | \item
|
| 1372 | +either |
1372 | 1373 | \tcode{sizeof...(Types) != 1}, or
|
1373 |
| -(when \tcode{Types...} expands to \tcode{T} and \tcode{UTypes...} expands to \tcode{U})\linebreak |
1374 |
| -\tcode{!is_convertible_v<const tuple<U>\&, T> \&\& !is_constructible_v<T, const tuple<U>\&>\linebreak{}\&\& !is_same_v<T, U>} |
1375 |
| -is \tcode{true}. |
| 1374 | +(when \tcode{Types...} expands to \tcode{T} and \tcode{UTypes...} expands to \tcode{U}) |
| 1375 | +\tcode{is_convertible_v<const tuple<U>\&, T>}, \tcode{is_constructible_v<T, const tuple<U>\&>}, and \tcode{is_same_v<T, U>} are all \tcode{false}. |
1376 | 1376 | \end{itemize}
|
1377 | 1377 | The constructor is explicit if and only if
|
1378 | 1378 | \tcode{is_convertible_v<const $\tcode{U}_i$\&, $\tcode{T}_i$>} is \tcode{false}
|
|
1399 | 1399 | \item
|
1400 | 1400 | \tcode{is_constructible_v<$\tcode{T}_i$, $\tcode{U}_i$\&\&>} is \tcode{true} for all $i$, and
|
1401 | 1401 | \item
|
| 1402 | +either |
1402 | 1403 | \tcode{sizeof...(Types) != 1}, or
|
1403 |
| -(when \tcode{Types...} expands to \tcode{T} and \tcode{UTypes...} expands to \tcode{U})\linebreak |
1404 |
| -\tcode{!is_convertible_v<tuple<U>, T> \&\& !is_constructible_v<T, tuple<U>> \&\&\linebreak{}!is_same_v<T, U>} |
1405 |
| -is \tcode{true}. |
| 1404 | +(when \tcode{Types...} expands to \tcode{T} and \tcode{UTypes...} expands to \tcode{U}) |
| 1405 | +\tcode{is_convertible_v<tuple<U>, T>}, \tcode{is_constructible_v<T, tuple<U>>}, |
| 1406 | +and \tcode{is_same_v<T, U>} are all \tcode{false}. |
1406 | 1407 | \end{itemize}
|
1407 | 1408 | The constructor is explicit if and only if
|
1408 | 1409 | \tcode{is_convertible_v<$\tcode{U}_i$\&\&, $\tcode{T}_i$>} is \tcode{false}
|
|
8989 | 8990 | \pnum
|
8990 | 8991 | \returns
|
8991 | 8992 | The first function template returns
|
8992 |
| -\tcode{less<unique_ptr<T, D>::pointer>()(x.get(),\\nullptr)}. |
| 8993 | +\begin{codeblock} |
| 8994 | +less<unique_ptr<T, D>::pointer>()(x.get(), nullptr) |
| 8995 | +\end{codeblock} |
8993 | 8996 | The second function template returns
|
8994 |
| -\tcode{less<unique_ptr<T, D>::pointer>()(nullptr, x.get())}. |
| 8997 | +\begin{codeblock} |
| 8998 | +less<unique_ptr<T, D>::pointer>()(nullptr, x.get()) |
| 8999 | +\end{codeblock} |
8995 | 9000 | \end{itemdescr}
|
8996 | 9001 |
|
8997 | 9002 | \indexlibrarymember{operator>}{unique_ptr}%
|
|
9990 | 9995 | \pnum
|
9991 | 9996 | \returns
|
9992 | 9997 | The first function template returns
|
9993 |
| -\tcode{less<typename shared_ptr<T>::element_type*>()(a.get(), nullptr)}. |
| 9998 | +\begin{codeblock} |
| 9999 | +less<typename shared_ptr<T>::element_type*>()(a.get(), nullptr) |
| 10000 | +\end{codeblock} |
9994 | 10001 | The second function template returns
|
9995 |
| -\tcode{less<typename shared_ptr<T>::element_type*>()(nullptr, a.get())}. |
| 10002 | +\begin{codeblock} |
| 10003 | +less<typename shared_ptr<T>::element_type*>()(nullptr, a.get()) |
| 10004 | +\end{codeblock} |
9996 | 10005 | \end{itemdescr}
|
9997 | 10006 |
|
9998 | 10007 | \indexlibrarymember{operator>}{shared_ptr}%
|
|
0 commit comments