CPP_LECTS_RUS Telegram 70
Ещё один вопрос по диапазонам. Надеюсь после моей лекции все устыдились и ответы будут обстоятельными и интересными.

Есть код:

struct S { int x, y; };
std::vector<S> v{{1, 0}, {2, 0}, {4, 0}};
auto it = ranges::find(v | views::transform(std::mem_fn(&S::x)), 4).base();

Что тут происходит: я проецирую вектор на инты, ищу там 4 и прошу итератор (base) на исходный вектор.

https://godbolt.org/z/hhWaPsjsj

Он не работает, но GCC и ToT Clang говорят разные вещи.

У clang там просто ranges::dangling (хотя как может провиснуть итератор на существующий вектор?)
У gcc там нечто более интересное.

Опять таки исходный библиотечный код один и тот же. Как бы вы это исследовали? Кто тут прав?

#questions
🤔14👍1👀1



tgoop.com/cpp_lects_rus/70
Create:
Last Update:

Ещё один вопрос по диапазонам. Надеюсь после моей лекции все устыдились и ответы будут обстоятельными и интересными.

Есть код:

struct S { int x, y; };
std::vector<S> v{{1, 0}, {2, 0}, {4, 0}};
auto it = ranges::find(v | views::transform(std::mem_fn(&S::x)), 4).base();

Что тут происходит: я проецирую вектор на инты, ищу там 4 и прошу итератор (base) на исходный вектор.

https://godbolt.org/z/hhWaPsjsj

Он не работает, но GCC и ToT Clang говорят разные вещи.

У clang там просто ranges::dangling (хотя как может провиснуть итератор на существующий вектор?)
У gcc там нечто более интересное.

Опять таки исходный библиотечный код один и тот же. Как бы вы это исследовали? Кто тут прав?

#questions

BY C++ and other lectures


Share with your friend now:
tgoop.com/cpp_lects_rus/70

View MORE
Open in Telegram


Telegram News

Date: |

Click “Save” ; 6How to manage your Telegram channel? Image: Telegram. A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture.
from us


Telegram C++ and other lectures
FROM American