Здравствуйте, alex_public, Вы писали:
_>Это полная ерунда. Я бы разделил изменения в стандарте C++11 (а C++14 — это всего лишь работа над ошибками в C++11) на следующие пункты:
На самом деле все далеко не так здорово, особенно если сравнивать с шарпом.
_>1. Замыкания/лямбды. Очень важный пункт, позволяющий элементарно реализовывать потрясающие вещи (причём не только из мира ФП). Хотя естественно нечто подобное можно было делать и раньше (см. Boost), но ценой ужасающе кривого кода.
Из тройки C++/Java/C# замыкания/лямбды первыми появились в последнем. И то, что сделали с ними в C++ вызывает.. смешанные чувства. С одной стороны конечно вписали в старый язык, вроде ничего серьезно не поломав. А с другой стороны выглядит вырви глаз и после C# пользоваться таким вообще не хочется. Хотя конечно фломастеры разные.
_>2. Семантика перемещения. Вообще потрясающая вещь, не имеющая прямых аналогов в других языках. Как раз она эффективно решает известную проблему с использованием замыканий без сборщика мусора. Но полезно оно не только для замыканий — с данной техникой производительность приложений на C++ уходит вообще в недостижимый отрыв. Причём что самое интересное, многие старые приложения могут ускориться даже без правки их кода — достаточно их перекомпилировать под новый стандарт.
Скорее просто исправили старый косяк с ссылками, которые были слишком сильно завязаны на семантику указателей. Ну и немного повыносили мозг тем кто стандарт читает.
_>3. Улучшения метапрограммирования (variadic template, constexpr, decltype и т.п.). Это отдельное направление в мире C++, очень активно развивающееся. И кстати говоря не имеющее аналогов в других мейнстрим языках. Правда во многом до сих пор кривое (т.к. изначально шаблоны не для этого придумывались), но работа идёт...
Как минимум C# вполне себе работает с метапрограммированием. Я правда им пользуюсь умеренно, в основном базовые вещи, но по ним вроде одинаково у обоих. Только в шарпе листинги ошибок попроще)) Я не настолько хорошо знаком с Java, но подозреваю, что там тоже может что-то найтись (лямбды же они к себе перетянули).