Завершилась длительная эпопея по принятию нового стандарта для языка программирования Си++. Комитет 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 высокоуровневый стиль программирования стал более естественным, а эффективность возросла как никогда раньше. Кроме того, язык стал проще для изучения и освоения новичками.
Более подробно на http://www.opennet.ru/opennews/art.shtml?num=31476
хорошо.
только сам стандарт они уже зажали, конечно так что будем довольствоваться снятыми копиями прототипов
Рано радуетесь! Утвердить то утвердили, но он еще не опубликован. Пишут, что на публикацию они надеются потребуется несколько месяцев, а может год.
А есть уверенность что его весь реализуют? Была где-то таблица поддержки стандарта компиляторами, но найти не могу.
Из нововведений:
template<class T> class vector
{
vector (const vector &); // Конструктор копирования (медленный)
vector (vector &&); // Конструктор переноса из временного объекта (быстрый)
vector & operator = (const vector &); // Обычное присваивание (медленное)
vector & operator = (vector &&); // Перенос временного объекта (быстрый)
};
Litkevich Yuriy, ага, она самая.
Улучшение конструкторов объектов
class SomeType {
int number;
public:
SomeType(int new_number) : number(new_number) {}
SomeType() : SomeType(42) {}
};
class SomeType {
int number = 42;
public:
SomeType() {}
explicit SomeType(int new_number) : number(new_number) {}
};
Любой конструктор класса будет инициализировать number значением 42, если он сам не присваивает ей другое значение.для кроссплатформы акутальны только те стандарты, которые реализованы на всех платформах. а для большинства разработчиков - ещё и только те компиляторы, которые бесплатны. так что можно не особо торопиться
Ну вот, свершилось! Новый Стандарт официально опубликован. Кто хочет купить - http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372
Нет Стандарта, кроме Стандарта, и Комитет - пророк его.
Если вам нужно под Windows, то можете поставить вот этот MinGW вот http://nuwen.net/mingw.html. Мне его вполне хватило, чтобы посмотреть и опробовать новые фичи стандарта C++11
http://isocpp.org/blog/2013/04/trip-report-iso-c-spring-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.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)