|
15423 | 15423 | template<class T, class U> struct is_same;
|
15424 | 15424 | template<class Base, class Derived> struct is_base_of;
|
15425 | 15425 | template<class From, class To> struct is_convertible;
|
| 15426 | + template<class From, class To> struct is_nothrow_convertible; |
15426 | 15427 |
|
15427 | 15428 | template<class Fn, class... ArgTypes> struct is_invocable;
|
15428 | 15429 | template<class R, class Fn, class... ArgTypes> struct is_invocable_r;
|
|
15693 | 15694 | inline constexpr bool is_base_of_v = is_base_of<Base, Derived>::value;
|
15694 | 15695 | template<class From, class To>
|
15695 | 15696 | inline constexpr bool is_convertible_v = is_convertible<From, To>::value;
|
| 15697 | + template<class From, class To> |
| 15698 | + inline constexpr bool is_nothrow_convertible_v = is_nothrow_convertible<From, To>::value; |
15696 | 15699 | template<class Fn, class... ArgTypes>
|
15697 | 15700 | inline constexpr bool is_invocable_v = is_invocable<Fn, ArgTypes...>::value;
|
15698 | 15701 | template<class R, class Fn, class... ArgTypes>
|
|
16500 | 16503 | types, arrays of unknown
|
16501 | 16504 | bound, or \cv{}~\tcode{void} types. \\ \rowsep
|
16502 | 16505 |
|
| 16506 | +\indexlibrary{\idxcode{is_nothrow_convertible}}% |
| 16507 | +\tcode{template<class From, class To>}\br |
| 16508 | + \tcode{struct is_nothrow_convertible;} & |
| 16509 | + \tcode{is_convertible_v<From, To>} is \tcode{true} and |
| 16510 | + the conversion, as defined by \tcode{is_convertible}, |
| 16511 | + is known not to throw any exceptions\iref{expr.unary.noexcept} & |
| 16512 | + \tcode{From} and \tcode{To} shall be complete |
| 16513 | + types, arrays of unknown |
| 16514 | + bound, or \cv{}~\tcode{void} types. \\ \rowsep |
| 16515 | + |
16503 | 16516 | \indexlibrary{\idxcode{is_invocable}}%
|
16504 | 16517 | \tcode{template<class Fn, class... ArgTypes>}\br
|
16505 | 16518 | \tcode{struct is_invocable;} &
|
|
0 commit comments