Появилась новая версия Polynomial.zip
Пробежался по диагонали по вашему "анализу" найденного на gitHub. Чтиво оставило тягостное впечатление.
Во-первых, если, вам, например, не нравится, что авторы не реализовали корректное сравление чисел с плавающей точкой, - возьмите и реализуйте, либо выберите другой проект - благо их там полно. Во-вторых, если не поддерживается вашим допотопным компилятором, это не вина авторов - они используют более прогрессивные подходы - идите в ногу с ними или хотя бы не ставьте им это в вину. Это касается, в частности, формы записи циклов и использования auto-типа. В-третьих, ваши выводы об эффективности-неэффективности выглядят довольно наивными и не подкреплены проверками (например в случае функции Degree(), которая, скорее всего заинлайнится и на фоне остальных операций съест какие-то ничтожные доли времени).
Нет, не все там и на мой взгляд прекрасно. Например, если инициализировать полином пустым вектором, либо в процессе вызова Cutting() он станет нулевым, то Degree() будет возвращать -1, что как-то не очень хорошо. И code-style не везде выдержан, и, возможно, еще что-то - я внимательно не анализировал. Но это поправимые вещи - можно взять и исправить/расширить/дополнить, а не диванософски обплевать.
Претензия, что, дескать, шаблонные классы плохи тем, что может что-то вылезти неизвестно когда, лечится а) написанием качественного кода; б) тем, до чего вы пока что, видимо, еще не дошли - до написания тестов, покрывающих и разные типы и какие-то крайние возможные значения параметров. Так делают при реальной разработке, а рассуждения как правильнее делать на коленке, имхо, лишены большого смысла.