|
242 | 242 | template<class T> struct is_final; |
243 | 243 | template<class T> struct is_aggregate; |
244 | 244 |
|
| 245 | + template<class T> struct is_structural; |
245 | 246 | template<class T> struct is_signed; |
246 | 247 | template<class T> struct is_unsigned; |
247 | 248 | template<class T> struct is_bounded_array; |
|
493 | 494 | constexpr bool @\libglobal{is_final_v}@ = is_final<T>::value; |
494 | 495 | template<class T> |
495 | 496 | constexpr bool @\libglobal{is_aggregate_v}@ = is_aggregate<T>::value; |
| 497 | + template<class T> |
| 498 | + constexpr bool @\libglobal{is_structural_v}@ = is_structural<T>::value; |
496 | 499 | template<class T> |
497 | 500 | constexpr bool @\libglobal{is_signed_v}@ = is_signed<T>::value; |
498 | 501 | template<class T> |
|
932 | 935 | \tcode{T} is an aggregate type\iref{dcl.init.aggr} & |
933 | 936 | \tcode{T} shall be an array type, a complete type, or \cv~\keyword{void}. \\ \rowsep |
934 | 937 |
|
| 938 | +\indexlibraryglobal{is_structural}% |
| 939 | +\tcode{template<class T>}\br |
| 940 | + \tcode{struct is_structural;} & |
| 941 | + \tcode{T} is a structural type\iref{temp.param} & |
| 942 | + \tcode{remove_all_extents_t<T>} shall be a complete type or \cv~\keyword{void}. \\ \rowsep |
| 943 | + |
935 | 944 | \indexlibrary{\idxcode{is_signed}!class}% |
936 | 945 | \tcode{template<class T>}\br |
937 | 946 | \tcode{struct is_signed;} & |
|
2901 | 2910 | consteval bool is_abstract_type(info type); |
2902 | 2911 | consteval bool is_final_type(info type); |
2903 | 2912 | consteval bool is_aggregate_type(info type); |
| 2913 | + consteval bool is_structural_type(info type); |
2904 | 2914 | consteval bool is_signed_type(info type); |
2905 | 2915 | consteval bool is_unsigned_type(info type); |
2906 | 2916 | consteval bool is_bounded_array_type(info type); |
|
6732 | 6742 | consteval bool @\libglobal{is_abstract_type}@(info type); |
6733 | 6743 | consteval bool @\libglobal{is_final_type}@(info type); |
6734 | 6744 | consteval bool @\libglobal{is_aggregate_type}@(info type); |
| 6745 | +consteval bool @\libglobal{is_structural_type}@(info type); |
6735 | 6746 | consteval bool @\libglobal{is_signed_type}@(info type); |
6736 | 6747 | consteval bool @\libglobal{is_unsigned_type}@(info type); |
6737 | 6748 | consteval bool @\libglobal{is_bounded_array_type}@(info type); |
|
0 commit comments