Именованные требования C++: ImplicitLifetimeType
Примечание: стандарт не определяет именованное требование с таким названием. Это категория типов, определённая основным языком. Здесь она включена в качестве именованного требования только для единообразия.
Требования
Следующие типы в совокупности называются типами с неявным временем жизни:
- скалярные типы
- типы классов с неявным временем жизни
- типы массивов
- версии этих типов с cv-квалификаторами
Примечания
Некоторые операции могут неявно создавать объекты типов с неявным временем жизни и запускать их время жизни, если это позволило бы предотвратить неопределённое поведение. Однако такие операции не запускают время жизни подобъектов этих объектов, которые сами не являются типами с неявным временем жизни.
Отчёты об ошибках
Следующие отчёты об ошибках, меняющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применён к | Опубликованное поведение | Правильное поведение |
|---|---|---|---|
| CWG 2489 | C++20 | операция, начинающая время жизни массива char, неявно создаёт объекты | этого не происходит |
См. также
|
(C++23) | проверяет, является ли тип типом с неявным временем жизни (шаблон класса) |
|
(C++26) | проверяет, является ли отражённый тип типом с неявным временем жизни (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/ImplicitLifetimeType