Замена циклов



Есть вещи из моей практики C++ программиста(кроме статической типизации), по которым я скучаю.
Например по алгоритмам из стандартной библиотеки.
Вот на примере кусок кода все из той же Chromium OS, который двигает панели.
На первом скрине исходный код, на втором и третьем результат рефакторинга. Вариант на третьем скрине использует обобщенный бинарный алгоритм поиска, за счет чего более хорош по сложности, но суть не в этом.
Суть в очень красивом, по моему мнению, и лаконичном подходе с использованием обобщенного программирования или дженериков в простонародье. Насильно все к ним приводить не стоит, но уместное использование сильно режет количество кода. Меньше кода — меньше https://dimasmotrov.ru/all/menshe-znaesh-krepche-spish/ потенциального места для ошибок.
В питонячьей среде дженерики тоже есть, но вот аналога stl нет, да и не будет его. А мест, где нужно итерироваться по коллекциям, тьма. Пишем for дальше, что поделать 💻