Как вы используете C++11 сегодня?

Этот вопрос состоит из двух частей, первая из которых является самой важной и касается сейчас:

  • Следите ли вы за дизайном и развитием C++11? Какие блоги, новостные группы, документы комитетов и другие ресурсы вы используете?
  • Даже если вы не используете какие-либо новые функции, как они повлияли на ваш текущий выбор?
  • Какие новые функции вы используете сейчас, в производстве или иным образом?

Вторая часть является продолжением, касающимся нового стандарта, когда он станет окончательным:

  • Ожидаете ли вы использовать его немедленно? Что вы делаете, чтобы подготовиться к C++11, кроме перечисленных для предыдущих вопросов?
  • Очевидно, что поддержка компилятора должна быть, но есть еще коллеги, вспомогательные инструменты и другие факторы, которые следует учитывать. Что больше всего повлияет на ваше усыновление?

Редактировать: оригинал действительно был слишком спорным; Тем не менее, я все еще интересуюсь основным вопросом, поэтому я попытался очистить его и, надеюсь, сделать его приемлемым. Это кажется гораздо лучшим способом, чем дублирование - даже если некоторые ответы отвечают на аргументативный тон, они все еще применяются в той степени, в которой они ответили на вопросы, и все ответы являются собственностью сообщества, которая также должна быть очищена соответствующим образом.

15 ответов

Не могу догадаться, сколько людей интересуется новым C++0x, и я уверен, что каждый, кто знает C++ и использует его, заинтересован и хочет получить больше новостей об этом.

Я начал использовать все новое с C++0x, как только оно было реализовано с g ++. Тем не менее для небольших непереносимых проектов. Зачем? - Люди постоянно говорят мне забыть о C++ и полностью перейти на язык сценариев, чтобы ускорить разработку кода и забыть об управлении памятью. Тем не менее, мой лучший опыт и знания в C++. Я знаю RAII и использую библиотеку Boost каждый день. Теперь новые функции заставляют меня писать намного быстрее, чем раньше. Зная, что здесь есть значения, указатели (даже умные) исчезли из кода. STL алгоритмы с лямбдами просто качают и списки инициализаторов делают меня таким счастливым. Авто ключевое слово в ярости.

Итак, моя основная причина использовать C++0x сейчас - скорость разработки.

Я не использую C++0x сегодня, потому что это приведет к потере переносимости кода. Потому что сегодня нет стандарта C++0x.

Ответ: нет
Причина: переносимость кода

Нет, потому что это не полностью реализовано в компиляторах, которые я использую.

Когда выйдет C++0x и Visual Studio 2010 будет полностью выпущен вместе с "подходящим" g++, я буду использовать C++0x, когда смогу. Это вероятно потому, что я часто начинаю новые проекты (я делаю игры).

Хотя у меня есть существующая кодовая база, она меняется каждый раз, когда я придумываю способ сделать что-то лучше; изменение не является препятствием для меня. Использование C++0x было бы еще одним изменением.

Вы найдете разные мнения с большими кодами. В некоторых местах предпочитают, чтобы код выглядел одинаково, и это означает, что пятнистый C++0x не вариант: им придется либо преобразовывать все, чтобы использовать преимущества C++0x, либо не использовать его.

В других местах может поощряться использование функций C++0x, и в свободное время попробуйте исправить старый код для соответствия.

И другие места, такие как я, могут сразу захотеть воспользоваться всем, что может предложить C++0x.

Ответ: это зависит.

Нет, но я хотел бы, особенно для лямбда-функциональности.

Нет.

Все мое прикладное программное обеспечение разработано на Java. Весь мой быстрый и грязный код сделан на Python. Вся моя низкоуровневая работа выполняется на языке C. Обычно я не использую C++ (следовательно, это не повлияло на меня).

Если бы я использовал C++, я бы относился к C++0x так же, как к C1x - я уверен, что мой код не сломается, но я не собираюсь использовать новые функции до тех пор, пока стандарт не будет готов и не очищен,

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

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

Нет, я все еще использую VC6 большую часть времени:(, я не буду переходить на C++0x до 2020 года (возможно, мне следует сменить компанию?)

Я использую множество C++0x, в частности, шаблоны и функции с переменными параметрами, ссылки auto и decltype и r value.

Хотя с g++ 4.5 и Visual Studio 10 все может быть немного забавно, эти функции теперь достаточно стабильны и работают одинаково на обоих компиляторах.

Программные проекты, которые я начинаю сейчас, вероятно, не будут выпущены в течение года или около того, и к тому времени я ожидаю, что эти новые компиляторы будут доступны в стандартной комплектации.

Зависит. Я готовлюсь использовать некоторые функции C++0x в магистерской работе (хотя до сих пор я придерживался компиляторов C++03 в основном в ожидании VS2010b2)

Я бы не стал использовать его в реальной профессиональной работе. Для этого я хотел бы подождать, пока стандарт не будет завершен, и, по крайней мере, в случае MSVC, пока не будет выпущен компилятор в не бета-версии.

Да, когда я играю в моем собственном коде, который не имеет ничего общего с природой.

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

Узнать о возможностях, которые появятся в C++0x, было интересно, в частности, когда я понял, что уже использую некоторые из них через C++ TR1. Пока что расширенный for ("для каждого"), static_assert и улучшения в <functional> те, которые я использую больше в программах C++0x.

Это также научило меня немного повторного использования кода. Пытаясь уменьшить объем кода, который я должен изменить, чтобы приспособиться к C++0x, и в то же время сохранить код, совместимый с C++-pre-0x, насколько я могу (например, из библиотечного материала), научил меня интегрировать некоторые исправления и элементы C++0x в мой инструментарий до C++0x; в частности расширение numeric_limits<> включить членов const_, добавив эмуляцию nullptr, добавив default_delete и аналогичные конструкции, и использование (очевидно, часто забывают, так как я не нашел код, использующий его, кроме моего) [slist|forward_list],

Я бы сказал, что использование C++0x сегодня помогло мне лучше продолжать использовать C++-pre-0x сегодня. Я не уверен, что в ближайшее время перейду к "полному" C++0x, учитывая, что Boost помогает в этом разобраться. И что я не собираюсь касаться регулярных выражений или потоков с C++ в течение долгого времени.

Я использую TR1 (regex, unordered_map, unordered_set...) и некоторые дополнительные функции, которые будут в следующем стандарте, такие как (надеюсь) lexical_cast... каждый день, а не только сегодня:)

Новая работа в этом году, поэтому я охотно перешел на другой мир.NET/C#. Большинство проблем, которые у меня были с C++, просто не существуют в C#. Они сделали много вещей правильно (о, я восхваляю MS)

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

Просто мои два цента за субъективный вопрос;)

На данный момент все, что я использую, это auto и decltype, так как большая часть моего кода не использует ничего, требующего ссылки на r-значения или чего-то подобного, и на данный момент я вполне доволен auto (лучше, чем объявить итератор вектора карт)

Я использую static_assert, decltype и, иногда, r-value ссылки

unordered_map, Это должно было быть очевидно, когда map Первоначально было указано, что не все захотят оплатить сортировку ассоциативных ключей контейнеров, но, по крайней мере, у нас наконец-то есть полностью стандартизированный контейнер STL для него.

Я также использую библиотеку потоков и другие вещи. Ха-ха, я ранний усыновитель! Я не работаю и не работаю напрямую ни с кем, поэтому я могу делать все, что мне нравится, с этими вещами.:)

Другие вопросы по тегам