Namespaces
Variants
Views
Actions

C++ named requirements: ImplicitLifetimeType

From cppreference.com
< cpp‎ | named req
 
 
C++ named requirements
Basic
Type properties
ImplicitLifetimeType
Library-Wide
Container
Container Elements
(C++11)

Iterator
Stream I/O
Formatters
(C++20)
Random Numbers
(C++11)    
Concurrency
(C++11)
(C++11)
Ranges
Other
(C++11)


 

Note: the standard doesn't define a named requirement with this name. This is a type category defined by the core language. It is included here as a named requirement only for consistency.

[edit] Requirements

The following types are collectively called implicit-lifetime types:

[edit] Notes

Certain operations may implicitly create and start the lifetime of objects of implicit-lifetime types, if doing so would prevent undefined behavior. However, such operations do not start the lifetimes of subobjects of such objects that are not themselves of implicit-lifetime types.

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
CWG 2489 C++20 an operation that begins the lifetime of a char array implicitly creates objects it does not