Повышаю. Алгоритм представляет собой набор алгоритмов общего назначения. Хотя Boost содержит множество библиотек структур данных, нет единой библиотеки для алгоритмов общего назначения. Несмотря на то, что алгоритмы, как правило, полезны, многие из них считаются «слишком маленькими».
Например, реализация поиска Бойера-Мура может занять у разработчика неделю или около того, включая тестовые случаи и документацию. Тем не менее, планирование обзора для включения этого кода в Boost может занять несколько месяцев и столкнуться с сопротивлением, потому что «это слишком мало». Тем не менее, библиотека проверенных, проверенных, задокументированных алгоритмов может сделать жизнь разработчика намного проще, и в этом и заключается цель этой библиотеки.
Я буду запрашивать предложения от других разработчиков, а также просматривать литературу для существующих алгоритмов. Например, библиотека Adobe Source Library содержит множество полезных алгоритмов, которые уже имеют документацию и тестовые случаи. Кнут Искусство компьютерного программирования также полно описаний алгоритмов.
Моя цель - запускать регулярные обзоры алгоритмов, похожие на процесс обзора библиотеки Boost, но с меньшими фрагментами кода.
Boost.Algorithm использует Boost.Range, Boost.Assert, Boost.Array, Boost.TypeTraits и Boost.StaticAssert.
Спасибо всем, кто ознакомился с этой библиотекой и сделал предложения по улучшению. Стивен Ватанабе и Шон Парент, в частности, оказали большую помощь.