Здравствуйте, Shmj, Вы писали:
S>Не все. Нет полноценной рефлексии — а это очень важно.
Ну не знаю. Где нужна рефлексия — легко колхозится. Есть ещё бустовая либа, но она только для агрегатов.
S>Попробуйте ORM нормальную сделать, чтобы поля классов мапились на поля таблиц.
Делал. 2 раза) Внезапно выясняется, что ORM и низкое потребление ресурсов несовместимы. Поэтому производительный доступ к базе нужно проектировать в каждом нетривиальном запросе. В жизни мне хватало тонких обёрток над драйвером базы.
S>Нет поддержки деревьев выражений компилятором, как в C# — а это очень удобно.
Компиляторы начались на 3-м курсе, а весь 3й курс мы пробухали, поэтому тут сказать не имею)
S>Даже та же концепция async/await для асинхронного программирования на уровне языка — поддержки не имеет Понятно что это синтаксический сахар и можно std::async заюзать, однако же когда поддержка на уровне языка — проще и удобнее. co_await — не является столько удобным и продуманным и широкого распространения не получил — т.к. нет аналога async, только часть парадигмы реализована.
Ох уж мне эти async/await... Как там, повезли нормальный дебаг для них?
В реальном мире приходилось разгребать баги в компоненте, где всё в этих async-ах. Мопед был не мой, но больше было некому. Это жесть. И производительность была ниже плинтуса. В итоге я сделал вывод — чтобы эффективно использовать async/await нужно обладать квалификацией, позволяющей написать свой шедулер