Подтвердить что ты не робот

Какая ваша любимая функция С++ 0x?

Как многие из нас знают (и многие, и многие другие нет), С++ в настоящее время проходит окончательную редакцию для следующего пересмотра Международного стандарта, который, как ожидается, будет опубликован примерно через 2 года. Черновики и документы в настоящее время доступны на веб-сайте . Добавляются все новые функции, самые большие концепции и лямбды. Существует очень обширная статья Википедии со многими новыми функциями. GCC 4.3 и более поздние версии некоторые функции С++ 0x.

Что касается новых функций, мне очень нравятся черты типов (и соответствующие концепции), но мой определенный лидер - вариативные шаблоны. До 0x, длинные списки шаблонов включали Preprocessor Boost как правило, и очень неприятно писать. Это упрощает работу и позволяет обрабатывать шаблоны С++ 0x как совершенно функциональный язык с использованием вариативных шаблонов. Я уже написал с ними очень классный код, и я не могу больше ждать их использования!

Итак, какие функции вы более всего ожидаете?

4b9b3361

Ответ 1

авто ключевое слово для ввода типа переменной

Ответ 2

Lambdas и списки инициализаторов.

Кроме того, изменения, позволяющие в конечном итоге привести С++ в сборку мусора, выглядят довольно интересными. Возможно, С++ 1x действительно введет сборку мусора, но 0x/10 просто установит все возможное.

Ответ 3

Я хочу ссылки Rvalues.

Все другие новые функции - это вещи, с которыми мы могли бы легко жить без (увы). Однако отсутствие Rvalues ​​в С++ до сих пор заставило сотни авторов библиотеки шаблонов "взломать" проблему с исправлением Rvalue ref.

Ответ 4

Вариадические шаблоны! (Что в сочетании с ссылками на r-значение дает нам идеальную пересылку!)

Ответ 5

Темы и атомы.

Теперь с многоядерными процессорами норма С++ 0x должна была быть С++ 07.

G.

Ответ 6

Сильно напечатанные перечисления получают мой голос. Паскаль имел их только около 40 лет, поэтому хорошо видеть, что С++, наконец, догоняет.

Однако публикация стандарта действительно является не-событием. Что гораздо важнее, когда функции, которые вы хотите использовать, на самом деле полностью и надежно поддерживаются с помощью реальных наборов инструментов. Есть люди, которые, похоже, действительно наслаждаются написанием стандартно-совместимого кода, который не компилируется ни в одном известном компиляторе. Удачи им.

Ответ 7

  • Это должно быть включение некоторых из библиотек Boost (shared_ptr < > и привязка верхнего списка)

  • Контроль над установкой шаблона должен, наконец, решить проблему огромного времени компиляции и сделать фактически возможным использовать современный шаблон кода в больших проектах.

  • Шаблоны typedefs

Множество других небольших, но важных вещей, но они имеют значение в производственном коде.

Ответ 8

Руки вниз для меня. Но списки инициализаторов, lambdas и variadic шаблоны являются близкими секундами.

Ответ 9

Я не могу решить между Null Pointer Type, Tuple Типы, или Regex. "Foreach" тоже там. "Умные указатели" само собой разумеется...: -)

В принципе, я действительно жду обновления.

Лично я думаю, что тяжелое использование типа нулевого указателя поймает много ошибок. Кортежи отлично подходят для обработки реляционных данных. Много классных вещей.

Ответ 10

Это не большой, но я люблю идею истинного nullptr. Должно быть ключевое слово справа от git -go.

Ответ 11

Закрытие для меня.

Ответ 12

auto ключевое слово

Ответ 13

Lambdas и Концепции

Ответ 14

Угловая скобка во вложенных объявлениях шаблонов.

Итак, я смогу написать

std::vector<std::vector<int>> a;

вместо ужасного

std::vector<std::vector<int> > a;

Ответ 15

Итерационный синтаксис for (auto x : collection) выглядит круто, я думаю... он буквально сокращает размер многих заголовков контуров в 4 или более раз (типы итераторов часто... verbose)!

Это также означает, что вам не нужно разыменовывать итератор в теле цикла (с традиционным циклом итератора, вам всегда нужно использовать *i или i->..., чтобы получить значение элемента, но здесь вы можете просто использовать x), что в некоторых случаях делает код намного приятнее.

Ответ 16

unicode, многопоточность, hash_tables, интеллектуальные указатели и регулярные выражения.

ps: Интересно, почему они просто не могут просмотреть обзор кода gr8 и принять все уровни boost и tr1 в стандарты и сделать жизнь проще для всех. Все, что им нужно было решить, соглашается на рабочую факультативную модель сбора мусора.

Ответ 17

Умные указатели. Это действительно делает мир различий, не имея явно памяти - управляет выделенными кучей объектами.

Очевидно, вам все равно нужно "знать, что вы делаете", но по моему опыту он уменьшил количество ошибок, связанных с памятью, по крайней мере на один порядок в программном обеспечении, с которым я работал.

Ответ 18

Синтаксис идет от плохого к худшему.

Шаблоны Variadic и lambdas хороши, хотя синтаксис обоих к сожалению довольно нежелателен.

Ответ 19

Мне нравится constexpr, особенно в сочетании с вариативными шаблонами и определенными пользователем литералами, мы можем, наконец, иметь бинарные литералы и множество других положительных героев.

obj.bitmask |= 00001010B; 

Ответ 21

REGEX!! и библиотеки параллельного программирования, хотя я еще не знаю их функций.

Ответ 22

Строковые литералы! Я думал, что строковые блоки, подобные питону, были потрясающими, но я был неправ! В С++ 0x необработанные строковые литералы невероятно полезны для форматирования текста. Языки разметки могут быть написаны непосредственно в вашем источнике!

Ответ 23

На данный момент мне понравилась большая часть С++ 0x, с которой я играл:

  • nullptr
  • static_assert
  • лямбды
  • shared_ptr и weak_ptr
  • unique_ptr
  • decltype и auto

Я не пробовал <regexp>... Я думал, что это огромная идея... но я даже не нашел времени, чтобы посмотреть на нее.