Как вы используете С++ 11 сегодня?
Это вопрос в двух частях, первый из них наиболее важен и касается:
- Вы следите за дизайном и эволюцией С++ 11? Какие блоги, группы новостей, комитетные документы и другие ресурсы вы следуете?
- Даже если вы не используете какие-либо новые функции, как они повлияли на ваши текущие варианты?
- Какие новые функции вы используете сейчас, либо в производстве, либо иначе?
Вторая часть - это продолжение, касающееся нового стандарта, когда оно окончательно:
- Ожидаете ли вы использовать его немедленно? Что вы делаете для подготовки к С++ 11, кроме как указано в предыдущих вопросах?
- Очевидно, что поддержка компилятора должна быть там, но есть еще сотрудники, вспомогательные инструменты и другие факторы, которые следует учитывать. Что больше всего повлияет на ваше усыновление?
Изменить: оригинал действительно был слишком аргументированным; однако меня все еще интересует основной вопрос, поэтому я попытался его очистить и, надеюсь, сделать его приемлемым. Это кажется гораздо лучшим способом, чем дублирование. Несмотря на то, что некоторые ответы отвечали на аргументационный тон, они по-прежнему применяются в той мере, в которой они затрагивают вопросы, а все ответы - это свойство сообщества, которое также должно быть очищено.
Ответы
Ответ 1
Не могу догадаться, сколько интересует новый С++ 0x, и я уверен, что все, кто знает С++ и использует его, любопытны и жаждут новых новостей об этом.
Я начал использовать все новое из С++ 0x, как только он был реализован из g++. Тем не менее для небольших не переносных проектов.
Зачем? - Люди, которые постоянно говорят мне забыть о С++ и полностью переключаются на язык сценариев, чтобы быстрее развивать код и забывать об управлении памятью. Однако мой лучший опыт и знания в С++. Я знаю RAII и ежедневно использую библиотеку Boost. Теперь новые функции заставляют меня писать намного быстрее, чем раньше. Зная, что rvalues здесь, указатели (даже умные) исчезли из кода. Алгоритмы STL с lambdas просто скалы и списки инициаторов делают меня такой счастливой. Автоматическое ключевое слово взбешено.
Итак, моя главная причина использовать С++ 0x сейчас - это скорость разработки.
Ответ 2
Сегодня я не использую С++ 0x, потому что это приведет к потере переносимости кода. Потому что сегодня нет С++ 0x Standard.
Ответ: Нет
Причина: переносимость кода
Ответ 3
Нет, потому что он не полностью реализован в компиляторах, которые я использую.
Когда выйдет С++ 0x и полностью выпущена Visual Studio 2010 вместе с "сопоставлением" g++, я буду использовать С++ 0x, когда смогу. Это, вероятно, потому, что я часто начинаю новые проекты (я делаю игры).
Хотя у меня есть существующая база кода, она меняется каждый раз, когда я выясняю способ сделать что-то лучше; изменение не является препятствием для меня. Использование С++ 0x просто будет другим изменением.
Вы найдете разные мнения с большими кодовыми базами. Некоторые места предпочитают, чтобы код выглядел единообразно, а это означает, что пятнистый С++ 0x не является вариантом: им нужно либо преобразовать всю вещь, чтобы использовать С++ 0x, либо не использовать ее.
Другие места могут способствовать использованию возможностей С++ 0x, и в свободное время попытайтесь установить более старый код для соответствия.
И другие места, такие как я, могут немедленно захотеть воспользоваться всеми возможностями С++ 0x.
Ответ: это зависит.
Ответ 4
Нет, но я хотел бы, особенно для лямбда-функциональности.
Ответ 5
Нет.
Все мое прикладное программное обеспечение разработано на Java. Весь мой быстрый и грязный код выполняется в Python. Вся моя низкоуровневая работа выполняется в C. Обычно я не использую С++ (следовательно, это не повлияло на меня).
Если бы я использовал С++, я бы рассматривал С++ 0x, как я рассматриваю C1x - я убеждаюсь, что мой код не сломается, но я не буду использовать новые функции до тех пор, пока стандарт не будет сделано и вымыто.
Что касается того, буду ли я использовать новые функции, как только стандарт ратифицирует, нет. Процесс будет постепенным. Поскольку обслуживание будет развернуто для моих текущих приложений, я могу добавить его, в зависимости от вероятной выгоды.
Даже новые приложения, которые я пишу, потребуют новых функций языка, прежде чем я буду использовать эти функции.
Ответ 6
Нет, я все еще использую VC6 большую часть времени:(, не получится ли на С++ 0x до 2020 года (возможно, я должен сменить компанию?)
Ответ 7
Я использую много С++ 0x, в частности вариативные шаблоны и функции, авто и decltype и ссылки rvalue.
В то время как вещи могут быть немного забавными, с g++ 4.5 и Visual Studio 10, эти функции теперь довольно стабильны и работают одинаково для обоих компиляторов.
Проекты программного обеспечения, с которых я начинаю сейчас, вероятно, не будут выпущены в течение года или около того, и к тому моменту я ожидаю, что эти новые компиляторы будут доступны в качестве стандартных.
Ответ 8
Да при игре arround на моем собственном коде, который не имеет притязаний, чтобы выйти в природе.
Нет, когда я кодирую что-то, что некоторые люди будут использовать на старых компиляторах.
Ответ 9
Зависит. Я готов использовать некоторые функции С++ 0x в моей магистерской диссертации (хотя до сих пор я придерживался компиляторов С++ 03 в основном в ожидании VS2010b2)
Я бы не использовал его в реальной профессиональной работе. Для этого я хочу подождать, пока стандарт не будет завершен, а в случае с MSVC, по крайней мере, до тех пор, пока компилятор не будет выпущен в не-бета-версии.
Ответ 10
Я использую TR1 (regex, unordered_map, unordered_set...) и некоторые дополнительные функции, которые будут в следующем стандарте, как (надеюсь) lexical_cast... каждый день, а не только сегодня:)
Ответ 11
Новая работа в этом году, поэтому я с готовностью поменял стороны на мир .NET/С#. Большинство проблем, которые я имел с С++, просто не существуют в С#. Они многое сделали правильно (д-р-а-а-а-а-а-а-а).
Я думаю, что С++ стал монстром, и когда я в последний раз смотрел на него, С++ 0x, похоже, вырастил монстра, а не уменьшал его до действительно необходимого подмножества.
Только мои два цента за субъективный вопрос;)
Ответ 12
Изучение возможностей, появившихся в С++ 0x, было интересно, особенно когда я понял, что уже использовал некоторые из них через С++ TR1. Пока расширенные for
( "foreach" ), static_assert
и улучшения в <functional>
являются теми, которые я использую больше в программах на С++ 0x.
Он также немного научил меня повторному использованию кода. Попытка уменьшить количество кода, которое я должен изменить, чтобы адаптироваться к С++ 0x и в то же время сохранить код, совместимый с С++, - до 0x, насколько я могу (например, например: материал библиотеки) научил меня интегрировать некоторые исправления и элементы С++ 0x в панель инструментов pre-С++ 0x; в частности, расширение numeric_limits<>
для включения членов const_, добавление эмуляции nullptr, добавление default_delete
и аналогичные строит и использует (по-видимому, часто забытый, поскольку я не нашел код, используя его, кроме моего) [slist|forward_list]
.
Я бы сказал, что использование С++ 0x сегодня помогло мне лучше продолжать использовать С++ - pre-0x сегодня. Я не уверен, что скоро буду прыгать в "полный" С++ 0x, учитывая, что Boost помогает покрыть там какую-то землю. И что я не намерен касаться регулярных выражений или потоков с помощью С++ в длинном длинном времени.
Ответ 13
Я использую static_assert, decltype и, иногда, ссылки r-value
Ответ 14
на данный момент все, что я использую, - auto и decltype, так как большая часть моего кода не использует ничего, что требует ссылок на r-значение или подобных вещей, и я вполне доволен авто на данный момент (бьет объявление a итератор вектора отображений)
Ответ 15
unordered_map
. Это должно было быть очевидно, когда изначально было указано map
, что не все хотели бы оплатить стоимость сортировки своих ассоциативных ключей контейнера, но, ну, по крайней мере, у нас, наконец, есть полностью стандартизованный контейнер STL для него.
Я также использую библиотеку потоков и другие материалы. Ха-ха, я рано усыновляю! Я не работаю, и я не работаю напрямую с кем-либо, поэтому я могу в принципе делать то, что мне нравится с этими вещами.:)