Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C++11
Форум на CrossPlatform.RU > Разработка > С\С++
igor_bogomolov
Завершилась длительная эпопея по принятию нового стандарта для языка программирования Си++. Комитет ISO по стандартизации языка C++ единогласно утвердил спецификацию C++0X в качестве международного стандарта "C++11". Стандарт C++0X планировалось выпустить еще в 2008 году, но его принятие постоянно откладывалось. Большинство представленных в стандарте возможностей уже поддерживаются в таких компиляторах, как GCC, IBM C++, Intel C++ и Visual C++. Поддерживающие C++11 стандартные библиотеки реализованы в рамках проекта Boost.

Новый стандарт развивался более 10 лет и пришел на смену стандартам C++98 и C++03. Отмечается, что если различия между стандартами C++98 и C++03 были столь незначительными, что их можно было не заметить, то стандарт C++11 содержит ряд кардинальных улучшений, как самого языка, так и стандартной библиотеки. По словам Бьерна Страуструпа, создателя C++, C++11 ощущается как новый язык, части которого лучше сочетаются друг с другом. В C++11 высокоуровневый стиль программирования стал более естественным, а эффективность возросла как никогда раньше. Кроме того, язык стал проще для изучения и освоения новичками.

Более подробно на opennet.ru
Litkevich Yuriy
Цитата(igor_bogomolov @ 15.8.2011, 11:28) *
Кроме того, язык стал проще для изучения и освоения новичками.
Интересно было бы увидеть примеры
Iron Bug
хорошо.
только сам стандарт они уже зажали, конечно :) так что будем довольствоваться снятыми копиями прототипов :)
RazrFalcon
Цитата(igor_bogomolov @ 15.8.2011, 8:28) *
Кроме того, язык стал проще для изучения и освоения новичками.

Старые самоучители за 21 день можно выбросить? :lol:

Еще бы кто то популярно объяснил в чем разница то... <_<
ViGOur
Рано радуетесь! Утвердить то утвердили, но он еще не опубликован. Пишут, что на публикацию они надеются потребуется несколько месяцев, а может год. :p
Litkevich Yuriy
Цитата(ViGOur @ 16.8.2011, 15:18) *
на публикацию они надеются потребуется несколько месяцев, а может год
Там у них видно СССРовские бюрократы затисались.
Iron Bug
Цитата(RazrFalcon @ 16.8.2011, 1:13) *
Старые самоучители за 21 день можно выбросить? :lol:

Еще бы кто то популярно объяснил в чем разница то... <_<

можешь не торопиться. компиляторов-то нет покамесь. ещё и предыдущие-то стандарты многие не полностью поддерживают. так что можно ещё Карнеги и Ричи юзать смело :)

Цитата(ViGOur @ 16.8.2011, 15:18) *
Рано радуетесь! Утвердить то утвердили, но он еще не опубликован.

дык, они ж его ещё и за бабло будут продавать. всякие комитеты по стандартам удавятся, но не дадут ни одной бумажки за просто так.
затем мы и качали сырец, чтобы потом был стандарт в наличии. ну, почти стандарт. пока сырец - доступен всем за бесплатно. а потом - пожалуйте ваши денежки, дамы и господа!
BRE
Цитата(Iron Bug @ 17.8.2011, 20:12) *
можешь не торопиться. компиляторов-то нет покамесь.

Почему нет?
gcc с 4.5 уже может. Ключик ему говоришь и фсе. :)
Iron Bug
Цитата(BRE @ 17.8.2011, 23:47) *
gcc с 4.5 уже может.

чота нет уверенности, что у него там реализован весь стандарт.
panter_dsd
А есть уверенность что его весь реализуют? :) Была где-то таблица поддержки стандарта компиляторами, но найти не могу.
Litkevich Yuriy
Из нововведений:
template<class T> class vector
{
   vector (const vector &);              // Конструктор копирования (медленный)
   vector (vector &&);                   // Конструктор переноса из временного объекта (быстрый)
   vector & operator = (const vector &); // Обычное присваивание (медленное)
   vector & operator = (vector &&);      // Перенос временного объекта (быстрый)
};


Цитата(panter_dsd @ 18.8.2011, 12:06) *
ыла где-то таблица поддержки стандарта компиляторами, но найти не могу.
може эта?
panter_dsd
Litkevich Yuriy, ага, она самая.
Litkevich Yuriy
Улучшение конструкторов объектов
Цитата
Стандартный C++ не допускает вызова одних конструкторов класса из других конструкторов этого же класса; каждый конструктор должен полностью инициализировать все члены класса либо вызывать для этого методы класса.
Т.е. Мы часто вынуждены были делать вспомогательную функцию init(...)
Новый стандарт позволяет вызывать одни конструкторы класса из других (так называемая делегация). Это позволяет писать конструкторы, использующие поведение других конструкторов без внесения дублирующего кода:
class SomeType  {
    int number;

public:
    SomeType(int new_number) : number(new_number) {}
    SomeType() : SomeType(42) {}
};

НО, Похожего эффекта можно добиться, указав инициализирующее значение 42 для этой переменной прямо при её объявлении:
class SomeType  {
    int number = 42;

public:
    SomeType() {}
    explicit SomeType(int new_number) : number(new_number) {}
};
Любой конструктор класса будет инициализировать number значением 42, если он сам не присваивает ей другое значение.
Iron Bug
для кроссплатформы акутальны только те стандарты, которые реализованы на всех платформах. а для большинства разработчиков - ещё и только те компиляторы, которые бесплатны. так что можно не особо торопиться :)
Влад
Ну вот, свершилось! Новый Стандарт официально опубликован. Кто хочет купить - пожалуйста!

Нет Стандарта, кроме Стандарта, и Комитет - пророк его.
Goliath
Если вам нужно под Windows, то можете поставить вот этот MinGW вот отсюда. Мне его вполне хватило, чтобы посмотреть и опробовать новые фичи стандарта C++11
Влад

http://isocpp.org/blog/2013/04/trip-report...ng-2013-meeting

This afternoon in Bristol, UK, the ISO C++ standards committee adopted generic lambdas, dynamic arrays (an improved version of C99 VLAs), variable templates, reader/writer locks, make_unique, optional<T>, standard library user-defined literals, and a number of other language and library improvements – and approved the result as the feature-complete Committee Draft (CD) of Standard C++14 to be distributed for its primary international review ballot.

In addition to completing the C++14 CD document, the committee also made progress on three additional important parallel specifications that are on track to be published around the same time as C++14:

File system library (draft), based on Boost.FileSystem version 3.
Networking library, small at first and regularly extended.
“Concepts Lite” language extensions (draft), to express template constraints and improve template usability and error messages.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.