Skip to content

Commit 79b7a36

Browse files
authored
Merge 2023-02 LWG Motion 14
P2674R1 A trait for implicit lifetime types
2 parents 767455c + 6cf799d commit 79b7a36

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

source/meta.tex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,8 @@
245245

246246
template<class T> struct is_nothrow_destructible;
247247

248+
template<class T> struct is_implicit_lifetime;
249+
248250
template<class T> struct has_virtual_destructor;
249251

250252
template<class T> struct has_unique_object_representations;
@@ -519,6 +521,8 @@
519521
constexpr bool @\libglobal{is_nothrow_swappable_v}@ = is_nothrow_swappable<T>::value;
520522
template<class T>
521523
constexpr bool @\libglobal{is_nothrow_destructible_v}@ = is_nothrow_destructible<T>::value;
524+
template<class T>
525+
constexpr bool @\libglobal{is_implicit_lifetime_v}@ = is_implicit_lifetime<T>::value;
522526
template<class T>
523527
constexpr bool @\libglobal{has_virtual_destructor_v}@ = has_virtual_destructor<T>::value;
524528
template<class T>
@@ -1199,6 +1203,13 @@
11991203
\cv{}~\keyword{void}, or an array of unknown
12001204
bound. \\ \rowsep
12011205

1206+
\indexlibraryglobal{is_implicit_lifetime}%
1207+
\tcode{template<class T>}\br
1208+
\tcode{struct is_implicit_lifetime;} &
1209+
\tcode{T} is an implicit-lifetime type\iref{basic.types.general}. &
1210+
\tcode{T} shall be an array type,
1211+
a complete type, or \cv{}~\keyword{void}. \\ \rowsep
1212+
12021213
\indexlibraryglobal{has_virtual_destructor}%
12031214
\tcode{template<class T>}\br
12041215
\tcode{struct has_virtual_destructor;} &

source/support.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,7 @@
647647
#define @\defnlibxname{cpp_lib_is_aggregate}@ 201703L // also in \libheader{type_traits}
648648
#define @\defnlibxname{cpp_lib_is_constant_evaluated}@ 201811L // also in \libheader{type_traits}
649649
#define @\defnlibxname{cpp_lib_is_final}@ 201402L // also in \libheader{type_traits}
650+
#define @\defnlibxname{cpp_lib_is_implicit_lifetime}@ 202302L // also in \libheader{type_traits}
650651
#define @\defnlibxname{cpp_lib_is_invocable}@ 201703L // also in \libheader{type_traits}
651652
#define @\defnlibxname{cpp_lib_is_layout_compatible}@ 201907L // also in \libheader{type_traits}
652653
#define @\defnlibxname{cpp_lib_is_nothrow_convertible}@ 201806L // also in \libheader{type_traits}

0 commit comments

Comments
 (0)