C++0x (Елена Сагалаева на ADD-2010)
Содержание
Аннотация
Елена Сагалаева, ведущая известный блог alenacpp.blogspot.com, представила доклад о разработке нового стандарта языка С++: чего хотели добиться, чего получилось, от чего пришлось отказаться.
Разработчики компиляторов GCC и MSVC++ не стали дожидаться выхода стандарта и уже много чего реализовали. Рассказ о некоторых наиболее интересных вещах из С++0х, которые можно использовать уже сейчас.
Видео
Подкаст
Презентация
Примечания
- C++0x (Елена Сагалаева на ADD-2010)
Так как многопоточное программирование было очень длинным докладом, решил забежать на Алену про новый стандарт C++. Сейчас все пишут на стандарте, написанном в 1998 году. Это о многом говорит. Новый должен был появиться в 200x году, но появится не раньше 2011го. Основная цель — уменьшить порог входа, сделать удобнее для написания системных библиотек, оставить по максимуму обратную совместимость.
Что будет:
- Теперь можно будет писать List<List<int>> (раньше две угловые скобки нельзя было писать подряд =)).
- auto (var в С#).
- Инициализация списков в фигурных скобках.
- Лямбды. Причем можно замыкать и по ссылке, и по значению. Синтаксис кривоват.
- Диагностика по словам докладчика все такая же.
- C++0x (Елена Сагалаева на ADD-2010)
Второй доклад Елены был о нелегкой доле в современном мире мощнейшего языка C++. Стандарт давно морально устарел и требует доработок, есть большая проблема — обучение и обучаемость языку. Выпуск нового стандарта постоянно откладываются, так как процесс его проработки очень демократичен и занимает много времени. Последний анонс — 2011 год. Сейчас уже ясно, что в нем отказались от сборки мусора и от концепций, урезали потоки. Но разработчикам компиляторов надо как-то жить, они вынуждены реализовывать полезные фичи, не дожидаясь официального выпуска стандарта. Далее рассмотрели несколько фич в разрезе трех компиляторов: GCC 4.5.1, VC++2010, IntelC++ 11, кто и как эти фичи реализовал:
- auto
- списки инициализации
- лямбда-функции
- лямбда-capture
- замыкания
- nullptr
- атрибуты (никем не реализованы)
- long long int
- C++0x (Елена Сагалаева на ADD-2010)
Текущий стандарт C++ аж 98-го года и давно морально устарел.
Зачем что менять? Вот:
- Сделать язык лучше для системного программирования
- Облегчить обучение языку
Но при этом сохранить обратную совместимость по максимуму.
В марте 2010 вышел draft нового стандарта C++, принятие которого ожидали еще в двухтысячные годы (потому и 0x). Но в стандарт не вошли некоторые ожидаемые вещи, например сборка мусора.
Производители компиляторов не стали дожидаться выхода стандарта и уже частично его поддерживают. В докладе показывались новые возможности языка и поддержка этих возможностей компиляторами GCC 4.5.1, MS VC++ и Intel C++.
Репликация: База Знаний «Заказных Информ Систем» → «C++0x (Елена Сагалаева на ADD-2010)»
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».