Исправлен порядок аргументов в min_by, max_by и minmax_by
20.08.2025В вариантах min_by, max_by и minmax_by перепутан порядок аргументов функции сравнения. При асимметричном сравнении это давало неверный результат.
Что произошло
Регрессия появилась в версии 1.86, когда при вызове функций сравнения поменяли местами v1 и v2. Если функция сравнения симметрична — а разработчики обычно пишут именно такую — подмена ничего не меняет. Но если сравнение несимметрично (например, при сортировке по нескольким полям, где одно имеет приоритет над другим), результат оказывается неверным.
Существующие тесты этот случай не покрывали. Исправление вернуло прежний порядок аргументов; автор — miried.
Оригинал
Fix parameter order for _by() variants of min / max / minmax in std::cmp
Упоминаний: 1 · Просмотров: 2