🍴 Исследовательская задача: что именно изменил C++23

🍴 Исследовательская задача: что именно изменил C++23

В C++23 приняли P2718R0 — и старый баг range-for тихо исчез. Но не для всех временных объектов и не безусловно.

std::vector<int> getData() { return {1, 2, 3}; }

for (int x : getData() // временный 1
| filtered) // вью поверх него
std::cout << x;

✏️Задание (research): найди в документации/предложении ответы:

1️⃣ Жизнь каких именно временных объектов продлевает P2718R0?
2️⃣ Почему до C++23 пример выше был UB, а теперь — нет?
3️⃣ Остались ли случаи, где даже в C++23 ты получишь висячую ссылку?
Просмотры: 166
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти