Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, lpd, Вы писали:
_>>>Вообще то move-семантика — это как раз реальная киллер-фича, которая принципиально увеличивает эффективность кода. Причём каких-то даже близких аналогов этой фичи нет ни в одном из мейнстрим языков. lpd>>move-семантика это интересное нововведенин, но по сути, нужна только чтобы никогда не использовать прямое управление памятью, а всегда использовать stl-классы. Однако, в тех приложениях, где время копирования реально играет роль, все равно обычно используется прямое управление памятью. При этом все эти разные типы ссылок заметно усложняют язык.
_>Что ты называешь прямым управлением памятью? Например локальная переменная на стеке (самый правильный способ работы с данными в современном C++) — это прямое управление или нет? ) Или ты имеешь в виду вызовы new/delete? Если последнее, то как раз в правильном современном приложение на C++ их может не быть вообще. И при этом производительность будет не хуже ручного ассемблерного кода. )))
Под прямым управлением памятью я имею ввиду new/delete и указатели, которые пытаются исключить. Но ценой этого оказывается усложнение языка разными типами ссылок и правилами их преобразования.
Например, отсутствие копирования было бы полезно при разработке видео-кодеков. Но ffmpeg написан вообще на C, и я не вижу в подобных приложениях применения последним стандартам С++.
Вот лямбды и потоки — да, полезны. Было бы лучше, если бы C++ развивался не в сторону теоретического улучшения языка, как краткой записи абстрактных операций над абстрактными данными, а в сторону расширения области применения и сближения по удобству всего процесса разработки с Java-фреймворками и инфраструктурой, без излишнего усложнения.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)