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

Какая функция С++ 0x окажет наибольшее влияние?

Каким будет развитие через С++ в течение нескольких лет? Какие возможности С++ 0x больше всего повлияют на разработку С++?

В каком порядке я должен сосредоточиться на изучении этих новых функций?

4b9b3361

Ответ 1

Lambdas, потому что они, наконец, вводят разумные способы использования преимуществ функционального программирования.

Ответ 2

Я лично считаю, что переместить семантику (и ссылки rvalue в целом) являются наиболее важными изменениями, соответствующими параметрам thread/locks/atomics. Все остальное, более или менее, упрощает синтаксис или стандартизацию обычных сторонних решений - мы можем писать функторы, когда нам нужны lambdas, и у нас есть многочисленные библиотеки регулярных выражений. Даже из-за отсутствия атомных операций были некоторые решения, но не было никаких конструкторов перемещения/перемещения операторов присваивания.

Возможность перемещения объектов меняет все восприятие языка. Несмотря на то, что у нас было RVO и своп-временный трюк, чтобы еще немного подражать ему, трудно представить, как меняется жизнь, когда это часть повседневной жизни. Это не просто ofstream("log.txt") << "Hi!";, либо гораздо более быстрые алгоритмы STL, это совершенно новый способ передачи данных между функциями.

Ответ 3

auto, потому что люди будут злоупотреблять им.

Ответ 4

Диапазон для циклов.

for (int x: numbers) std::cout << x << " ";

Yay!

Ответ 5

Поддержка Unicode. Нет больше брусчаток и хаков, чтобы получить правильную обработку символов Юникода - теперь весь стандарт Юникода поддерживается на языке.

Ответ 6

auto, lambdas и интеллектуальные указатели.

Ответ 7

Стандартные средства для нарезки и синхронизации.

Ответ 8

Регулярные выражения как стандартная библиотека - вы знаете, что они вам нужны.

Ответ 9

Это отличная статья о новых функциях Объяснение нового стандарта С++ (С++ 0x) и его внедрение в VC10

Ключевое слово auto. Для автоматического вычитания типа данных (во время компиляции), в зависимости от инициализации.

Ключевое слово decltype. Для вывода типа данных из выражения или автоматической переменной

Ключевое слово nullptr Теперь указатель Null теперь поддерживается, и ему присваивается ключевое слово!

Ключевое слово static_assert. Для утверждений времени компиляции. Полезно для шаблонов и проверок, которые невозможно выполнить с помощью #ifdef.

Лямбда-выражения Локально определенные функции. Наследует функции от указателей функций и объектов класса (функторов).

Обратные типы возврата В основном полезно, когда тип возвращаемого шаблона функции не может быть выражен.

Ссылки на R-значение. Переместить семантику - использование ресурсов до уничтожения временного объекта.

также описаны новые возможности нового компилятора Microsoft

Ответ 10

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

Ответ 11

auto в циклах for и lambdas для алгоритма, я начну массовое использование for_each.

Ответ 12

Основные понятия. Наконец, мы сможем напечатать контрольные шаблоны перед их созданием, а когда мы их создадим неправильно, мы получим разумные сообщения об ошибках. Упс! Комитет С++ 0X не мог согласиться и, в конце концов, выбросил их. Хорошо, ждите С++ 1X...