Size: a a a

Конференция C++ Russia

2020 June 06

ES

Elizaveta Shamanina in Конференция C++ Russia
Msk
А как смотреть? Нажимаю «смотреть трансляцию» - предлагается купить билет
пройдите регистрацию
это бесплатно
источник

M

Msk in Конференция C++ Russia
Спасибо!
источник

GT

George Tarasov in Конференция C++ Russia
Коллеги, всем доброго дня! У меня вопрос по for_each_n. Она появилась в С++17 и в моей реализации GCC не проверяет выход за пределы итератора. То есть можно спокойно попасть в чужую память ничего не подозревая. Пытался читать стандарт, что-то мало информации. Не самая часто испольуемая функция, но вопрос концептуальный: как так допустили попадание в стандарт потенциально опасной функции?? может кто подкинет холивара почитать на эту тему... Также пытался гугулить на тему for_each_n out of bound errors - что-то тоже пусто. Подмогите! Спасибо!
источник

AV

Alexey Veselovsky in Конференция C++ Russia
вроде по стандарту всё:
Complexity
Exactly n applications of f
источник

AV

Alexey Veselovsky in Конференция C++ Russia
(хотя это не из стандарта выдержка)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
зато БЫСТРО
источник

AV

Alexey Veselovsky in Конференция C++ Russia
на каждой итерации сравнение дополнительное делать - это такое себе
источник

ES

Egor Suvorov in Конференция C++ Russia
George Tarasov
Коллеги, всем доброго дня! У меня вопрос по for_each_n. Она появилась в С++17 и в моей реализации GCC не проверяет выход за пределы итератора. То есть можно спокойно попасть в чужую память ничего не подозревая. Пытался читать стандарт, что-то мало информации. Не самая часто испольуемая функция, но вопрос концептуальный: как так допустили попадание в стандарт потенциально опасной функции?? может кто подкинет холивара почитать на эту тему... Также пытался гугулить на тему for_each_n out of bound errors - что-то тоже пусто. Подмогите! Спасибо!
Принципиально нельзя проверить выход за пределы итератора в общем случае. C++ — это не про безопасные проверки и циклы.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
алсо итератор может быть итератором бесконечной коллекции например.
источник

GT

George Tarasov in Конференция C++ Russia
Да, логично , не подумал. По-сути простой итератор это оператор +. Можно конечно и его переопределить и сделать безопасным, но будет ли это также быстро.
источник

EB

Eduard Bondarenko in Конференция C++ Russia
Alexey Veselovsky
зато БЫСТРО
кратко про с++. ключевое слово зато)
источник

*

*cyberzx in Конференция C++ Russia
George Tarasov
Коллеги, всем доброго дня! У меня вопрос по for_each_n. Она появилась в С++17 и в моей реализации GCC не проверяет выход за пределы итератора. То есть можно спокойно попасть в чужую память ничего не подозревая. Пытался читать стандарт, что-то мало информации. Не самая часто испольуемая функция, но вопрос концептуальный: как так допустили попадание в стандарт потенциально опасной функции?? может кто подкинет холивара почитать на эту тему... Также пытался гугулить на тему for_each_n out of bound errors - что-то тоже пусто. Подмогите! Спасибо!
у итератора нет такого понятия как пределы. концептуально
источник

*

*cyberzx in Конференция C++ Russia
пределы это для контейнеров. и тут конечно есть большая проблема в дизайне алгоритмов STL, который основан на работе с итераторами, а не контейнерами. Хотя на практике безопаснее и удобнее работать именно с контейнерами
источник

*

*cyberzx in Конференция C++ Russia
хотя вот в C++20  нам наконец то подарили std::erase. Что даёт надежду на светлое будущее)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
ренжи!
источник

*

*cyberzx in Конференция C++ Russia
ренжи слишком сложны для простого C++ пролитериата. где гарантия того, что за этот сахарок я не буду платить производительностью или временем компиляции?
источник

AV

Alexey Veselovsky in Конференция C++ Russia
будешь платить и тем и другим. смирись.
источник

m

magras in Конференция C++ Russia
Кстати в рэнжах как раз бесконечные списки гораздо лучше выражаются благодаря sentinel.
источник

m

magras in Конференция C++ Russia
И, к слову, эффективнее по сравнению с итераторами.
источник

m

magras in Конференция C++ Russia
Хотя sentinel может быть и не привязан к рэнжам. По хорошему нужно смотреть. Но на сколько я помню, std::end все еще возвращает итератор, а не сентинел.
источник