Re[8]: C++ 20 приняли
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.01.21 09:11
Оценка: 2 (1) +2
Здравствуйте, Marty, Вы писали:

M>Я под STM32 на 11ом пишу, есть люди, которые на шаблонах C++ 17го стандарта с constexpr'ами фигачат. И, кстати, орчень эффективно выходит, по сравнению с более ранними стандартами


Вряд ли дело в стандартах — скорее всего, просто оптимизаторы стали лучше работать.

M>На других языках что, лучше понимают, что "у программы внутри"? Лучше без профайлера понимают, как писать эффективно?


У большинства других языков это попросту не входит в парадигму. Уникальность C — в том, что в нем принципиально нет языковых конструкций, могущих породить объемный и/или тормозной код. C++ это унаследовал, и единственной чисто языковой фичей, которая могла дать избыточный код или тормоза, были исключения. Но их и невозможно было реализовать иначе, поэтому к ним нет претензий.

А вот когда вдруг обнаружилось, что на шаблонах можно делать то, что в других условиях обязан делать сам язык — получение сведений о типах/объектах, их взаимосвязях и прочие compile-time сервисы — и этот подход был признан правильным, тогда и началась вакханалия. Большинство ведь толком не понимает, как работает шаблонная рекурсия, завязанная на SFINAE, поэтому тупо копирует рекомендованные конструкции из учебников; если после этого вылезают странные ошибки — жалуются в форумах, где им советуют "поправить вот здесь вот так". А привыкнув к такому подходу, начинает столь же бездумно лепить шаблонные конструкции для организации/обработки данных. И вместо прозрачного языка с контролируемым объемом и быстродействием программы получается еще один "язык выражения намерений программиста", которых и без того множество.

M>Чем тебе стандартная библиотека, и её развитие, не нравится — тоже не понятно.


Тем, что она давно подмяла язык под себя, предложив извращенную реализацию того, что должно быть нормально реализовано в компиляторе. По уму, ее давно нужно было выделить в отдельный стандарт и разбить на уровни, реализация которых опциональна.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.