Здравствуйте, Dmi_3, Вы писали:
D_>Надёжность реализации boost-генераторов проверялась(?) лишь тестированием. Я не думаю, что авторы сознательно удалили assert-ы являющиеся продуктом доказательства правильности. А общеизвестно, что тестирование лишь позволяет обнаружить некоторые ошибки, а вовсе не гарантирует их отсутствие. Наличие возможности деления на ноль в boost::uniform_on_sphere::operator() и возможности генерации одинаковых последовательностей разными boost::lagged_fibonacci яркое тому подтверждение. Практически невозможно не зная заранее об этих ошибках написать тестирующую программу, которая их обнаружит. А выявить ошибку путём попытки доказательства правильности, возможно. Я же выявил. Кроме того, программы написаны довольно небрежно, о чём свидетельствует разное число пробелов при вводе выводе.
Это прямое следствие самой природы Boost-а -- пропиаренного собрания самодельных велосипедов. В духе лучших традиций OpenSource -- подхода, когда баги выявляются миллионами глаз пользователей. В том числе и вашей парой
Что уж тут поделать. Потенциальные разработчики библиотек делятся на четыре категории:
* те, кто хотели бы делать библиотеки (но не обязательно умеют это делать)
* те, кто умеют это делать (но не обязательно хотят или берутся)
* те, кто заявляет о разработке (но не обязательно реально делают)
* те, кто реально делают (но не обязательно хотят или умеют)
К сожалению, наилучший результат получается на пересечении всех этих категорий. Что, как вы понимаете, происходит крайне редко
Лично я бы предпочел, чтобы библиотеки разрабатывались так, как Вирт и Кнут пишут свои программы -- когда они имеют возможность предлагать деньги за каждую найденную в уже вышедшей программе ошибку. Но приходится считаться с реальностью, в которой мы имеем то, что кто-то счел возможным поместить в Boost.
Пусть это сделано плохо, но это сделано и лицензия позволяет всем, кто имеет достаточные знания и умения, улучшить существующую реализацию. Это основополагающий принцип OpenSource. Поэтому ваш пост, с одной стороны, очень важен и полезен. Т.к. вы показали явные проблемы существующей реализации. И, может быть, подвигли кого-нибудь к ее исправлению. Но, с другой стороны, слишком уж вы кровожадны. И ваша эмоциональность, имхо, деструктивна. Так уж получается, что будущее C++ зависит от таких библиотек, как Boost. И как раз вы бы могли этому будущему поспособствовать, предложив Boost-у свою реализацию. Это было бы конструктивно. Хотя я понимаю, что скорее всего это невозможно из-за прав на интеллектуальную собственность.
D_>Надеюсь, я достаточно подробно раскрыл тезис, но в дальнейшем делать этого вероятно не буду.
Зря вы так

Ценность RSDN именно в том, что люди здесь считают возможным и нужным делится своими знаниями. И, в свою очередь, пополнять свои знания знаниями других участников.
D_> Сейчас я это сделал потому, что чувствую себя слегка виноватым перед Вами за недоразумение возникшее в ветке compile-time вычислений.
Дело давнее, уже забытое

Надеюсь, теперь вы лучше понимаете мое негативное отношение к черезчур сложным реализациям чего бы то ни было.