
Егор Парошин
Яндекс
Обсудим детали реализации некоторых range views в стандартной библиотеке C++. Также поговорим и о том, как избежать распространенных ошибок. Как стандарт ограничивает реализацию функции begin() и почему это может приводить к неожиданным проблемам. Каким образом нарушаются гарантии константности и какие подходы были применены для их восстановления.
Сравним split_view и lazy_split_view, чтобы показать их различия в поведении и назначении. Уделим внимание анализу работы std::generator и его роли в реализации ленивых вычислений. Поделюсь практическими советами по написанию кода с использованием ranges, чтобы минимизировать риск возникновения нежелательных эффектов.
Яндекс