В 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 ты получишь висячую ссылку?
📍Навигация: Вакансии • Задачи • Собесы • Канал в Max
Библиотека C/C++ разработчика
#константная_правильностьx