C ++ 0x реализации догадки? - PullRequest
6 голосов
/ 24 января 2009

Стандарт C ++ 0x находится на стадии завершения. До сих пор я баловался с C ++, но избегал его тщательного изучения, потому что, похоже, ему не хватает многих современных функций, которые я испортил в других языках. Тем не менее, я был бы очень заинтересован в C ++ 0x, который решает многие мои жалобы. Есть ли какие-либо предположения после ратификации стандарта относительно того, сколько времени потребуется крупным поставщикам компиляторов для обеспечения достаточно полных и качественных реализаций? Произойдет ли это достаточно скоро, чтобы обратить вспять падение популярности C ++, или слишком поздно или слишком поздно? Верите ли вы, что C ++ 0x станет "C ++" через несколько лет, или вы верите, что большинство людей на практике будут придерживаться более раннего стандарта, а C ++ 0x будет своего рода пасынком-подонком, вроде C99

Ответы [ 5 ]

16 голосов
/ 24 января 2009

Я не вижу причин, почему C ++ 0x не должен быть принят. Сообщество C ++ гораздо более дальновидно, чем C. C всегда задумывался как «переносимый язык ассемблера», поэтому люди, которые его используют, на самом деле не очень заинтересованы в модных новых функциях. C ++ простирается гораздо шире, и я еще не слышал о программисте C ++, который не с нетерпением ждал 0x. (Также у меня сложилось впечатление, что сообщество C ++ намного «строже» и действительно не хочет выходить за рамки стандарта в неопределенное поведение, что подразумевает, что вы выбираете либо C ++ 03, либо C ++ 0X, а не наполовину реализованный Программисты на C обычно более расслаблены и, похоже, рады использовать C89, добавив всего пару функций и заголовков C99)

Однако пройдет несколько лет, прежде чем Microsoft догонит, по крайней мере. Visual Studio 2010 будет поддерживать несколько функций C ++ 0x (lambdas, decltype и несколько других), но подавляющее большинство будет не . Нам придется подождать, пока выйдет VS2012 или какая-то следующая версия, чтобы получить полную поддержку.

С GCC / G ++ ситуация намного лучше, так как большая часть стандарта там уже реализована (комитет по стандартизации не любит принятия функций, которые не были реализованы и протестированы в реальном компиляторе, и Для этого часто используется вилка GCC

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

Насчет «падения популярности» в C ++ я не вижу этого. Я не думаю, что C ++ значительно снизился в популярности за последние годы. Разработчики RAD уже перешли с платформы .NET, Python или других языков или платформ. Но там, где C ++ используется сегодня, не так много жизнеспособных альтернатив и нет причин, по которым он должен снижаться в популярности.

3 голосов
/ 24 января 2009

Я не знаю о других поставщиках, но из что Я видел , Microsoft планирует включить в Visual C ++ 2010 четыре функции языка C ++ 0x:

  1. rvalue ссылки
  2. авто
  3. лямбда
  4. статическое утверждение

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

ИМХО: auto само по себе сделает использование шаблонов намного проще, чем будет делать больше программистов. И, надеюсь, это увеличит спрос на дополнительные функции C ++ 0x со стороны Microsoft и всех поставщиков.

Microsoft также будет обновлять свою реализацию стандартной библиотеки C ++, но я не знаю деталей. Я полагаю, что они модифицируют некоторые контейнерные классы, чтобы использовать преимущества семантики перемещения ссылки rvalue. И я считаю, что они включают в себя больше TR1.

2 голосов
/ 24 января 2009

Более новые версии gcc уже поддерживают многие функции C ++ 0x: http://gcc.gnu.org/projects/cxx0x.html

2 голосов
/ 24 января 2009

Некоторые реализации уже находятся на пути к C ++ 0x: ( gcc ). Моя интуиция говорит, что поддержка C ++ 0x будет доступна в основных компиляторах довольно быстро; однако большая часть устаревшего кода все еще существует, и ее необходимо поддерживать.

0 голосов
/ 24 января 2009

Microsoft включит поддержку C ++ 0x в Visual Studio 2010 позднее в этом году (предварительный просмотр технологии сообщества уже доступен).

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

В наши дни я мало работаю с С ++, но люди, с которыми я общаюсь, либо обожают его, либо чувствуют, что красота С ++ находится в контроле, который они получают, и что если им нужен язык со всеми этими дополнительными функциями, они буду использовать C # / Java.

...