-
- Увы, но между qsort и std::sort -- огромная пропасть. Странно этого не понимать. Начиная с того, что std::sort таки работает с объектами любых типов, а qsort только с имеющими тривиальный конструктор копирования. Потом qsort гораздо менее эффективен из-за сортировки обменом (std::sort требует чтоб value_type у итератора был перемещаемым и из-за этого может не тупо менять один сдругим, но двигать по памяти за ~вдвое меньшее число операций). qsort может сортировать только fk0(327 знак., 06.10.2020 02:25)
- Я веду к тому что мнение "оверхед у темплейтов нулевой" несколько
упрощеннолукавое. Есть ситуации, особенно в эмбедед
программировании, где оверхед МП начинает быть чувствительным. - Kabdim(05.10.2020 13:12)
- Да, пример с std::sort() был не самый удачный, учитывая, что в
предыдущем посте речь шла о размере, а не о скорости. Однако
аргумент о том, что шаблоны ведут к "code bloat" тоже лукавый. Как
бы предполагается, что без шаблонов дублирования кода не
происходит, но на деле ещё как происходит. Откройте реальный проект
на тёплом ламповом Си - копипасты там будет предостаточно. - йцyкeн(05.10.2020 13:34)
- На холодном транзисторном C++ многие библиотечные функции на самом деле ничего не дублируют. Тот же std::vector не плодит функции под кажды отдельный тип, а использует обобщённые функции где целесообразно. Разумеется не сам по себе, а код так написан руками. - fk0(06.10.2020 02:29)
- Некоторые считают, что "explicit is better than implicit". - s_h_e(05.10.2020 13:37)
- Да, пример с std::sort() был не самый удачный, учитывая, что в
предыдущем посте речь шла о размере, а не о скорости. Однако
аргумент о том, что шаблоны ведут к "code bloat" тоже лукавый. Как
бы предполагается, что без шаблонов дублирования кода не
происходит, но на деле ещё как происходит. Откройте реальный проект
на тёплом ламповом Си - копипасты там будет предостаточно. - йцyкeн(05.10.2020 13:34)