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” ; Clear ZDNET RECOMMENDS Each account can create up to 10 public channels During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month.
from us


Telegram C++ and other lectures
FROM American