LINUX.ORG.RU

История изменений

Исправление Crocodoom, (текущая версия) :

только что исправил затирание памяти из-за неправильного индекса массива

В чём проблема использовать std::vector.at()?

В том, что это был не вектор.

А если используете свои контейнеры

И не контейнер.

А что у вас там, голые си-массивы?

Дискуссия плавно поворачивает к «ваш quicksort - не quicksort»

Правильно, потому что это предметный разговор. Тема статических гарантий корректности тех или иных алгоритмов — это cutting edge современного CS.

На всякий случай уточню: я не растохейтер, а даже наоборот. Но не терплю фанбойства. Если Rust уже сейчас позволяет написать настоящий qsort, предоставляя статические гарантии отсутствия UB — я первый порадуюсь. Или хотя бы позволит в будущем. Это будет большой прорыв по сравнению с C++. Если нет — не нужно заниматься головотяпством.

UPD: def настоящий qsort = qsort такой же быстрый, как на языке без статических гарантий отсутствия UB, т.е. C, C++. А полумер типа «ну хоть какой-то qsort, пусть тормозной, зато safe» нам тут не надо.

Исходная версия Crocodoom, :

только что исправил затирание памяти из-за неправильного индекса массива

В чём проблема использовать std::vector.at()?

В том, что это был не вектор.

А если используете свои контейнеры

И не контейнер.

А что у вас там, голые си-массивы?

Дискуссия плавно поворачивает к «ваш quicksort - не quicksort»

Правильно, потому что это предметный разговор. Тема статических гарантий корректности тех или иных алгоритмов — это cutting edge современного CS.

На всякий случай уточню: я не растохейтер, а даже наоборот. Но не терплю фанбойства. Если Rust уже сейчас позволяет написать настоящий qsort, предоставляя статические гарантии отсутствия UB — я первый порадуюсь. Или хотя бы позволит в будущем. Это будет большой прорыв по сравнению с C++. Если нет — не нужно заниматься головотяпством.