Поддержка Visual Studio новых стандартов C / C++?

Я продолжаю читать о C99 и C++ 11 и обо всех этих совершенно приятных вещах, которые добавляются к языковому стандарту и которые когда-нибудь могут быть полезны. Однако в настоящее время мы томимся в стране написания C++ в Visual Studio.

Будет ли когда-либо добавлено что-либо из нового стандарта в Visual Studio, или Microsoft больше заинтересована в добавлении для этого новых вариантов C#?

Обновлено: в дополнение к принятому ответу я нашел блог команды Visual C++:

http://blogs.msdn.com/vcblog/

И конкретно этот пост в нем:

https://web.archive.org/web/20190109064523/https://blogs.msdn.microsoft.com/vcblog/2008/02/22/tr1-slide-decks/

Очень полезный. Спасибо!

Я не понимаю, что вы нашли полезного в статье из vcblog за 2008/02 год, поскольку описанные там функции давно существуют в ускоренном режиме и довольно хорошо известны. Изменяющие мир функции C++ 0x отличаются: лямбда-функции, инициализаторы и т. д., Перечисленные в en.wikipedia.org/wiki/C%2B%2B0x.

amit 24.06.2009 12:48

См. Также недавнюю статью blogs.msdn.com/vcblog/archive/2009/04/22/… (я знаю, что это позже, чем когда был задан вопрос)

amit 24.06.2009 12:52

Это было значительно улучшено в последних версиях Visual Studio, например в обновлении 2 2015 года: visualstudio.com/en-us/news/vs2015-update2-vs.aspx#Cdoublepl‌ нас.

Ricardo Peres 13.06.2016 13:36

Попробуйте MinGW-64

Basile Starynkevitch 13.07.2020 14:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
102
4
64 450
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Microsoft никогда не проявляла реальной заинтересованности в поддержании скорости со стандартом c99 (который уже устарел). Печально для C-программистов, но я подозреваю, что Microsoft больше заботится о C++ - сообществе.

Visual C++ 2008 SP1 содержит, по крайней мере, части TR1, и время от времени команда Visual C++ ведет блог или обсуждает C++ 0x, так что я предполагаю, что они когда-нибудь поддержат его в этой функции. Но ничего официального я не читал.

Ответ принят как подходящий

У MS есть серия публичных ответов на это, большинство из которых обвиняют своих пользователей. Как этот:

https://devblogs.microsoft.com/cppblog/iso-c-standard-update/

Now, the Visual C++ compiler team receives the occasionally question as to why we haven’t implemented C99. It’s really based on interest from our users. Where we’ve received many requests for certain C99 features, we’ve tried to implement them (or analogues). A couple examples are variadic macros, long long, __pragma, __FUNCTION__, and __restrict. If there are other C99 features that you’d find useful in your work, let us know! We don’t hear much from our C users, so speak up and make yourselves heard

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=345360

Hi: unfortunately the overwhelming feadback we get from the majority of our users is that they would prefer that we focus on C++-0x instead of on C-99. We have "cherry-picked" certain popular C-99 features (variadic macros, long long) but beyond this we are unlikely to do much more in the C-99 space (at least in the short-term).

Jonathan Caves

Visual C++ Compiler Team.

Это довольно печальное положение дел, но также имеет смысл, если вы подозреваете, что MS хочет заблокировать пользователей: из-за этого очень сложно переносить современный код на основе gcc в MSVC, что, по крайней мере, я нахожу чрезвычайно болезненным.

Однако существует обходной путь: обратите внимание, что Intel гораздо более осведомлена об этом. компилятор Intel C может обрабатывать код C99 и даже имеет те же флаги, что и gcc, что значительно упрощает перенос кода между платформами. Также компилятор Intel работает в visual studio. Таким образом, отказавшись от MS COMPILER, вы все равно можете использовать MS IDE, которая, по вашему мнению, имеет какую-то ценность, и использовать C99 в свое удовольствие.

Честно говоря, более разумный подход - перейти на Intel CC или gcc и использовать Eclipse в своей среде программирования. По моему опыту, переносимость кода в Windows-Linux-Solaris-AIX и т. д. Обычно важна, и, к сожалению, это совсем не поддерживается инструментами MS.

«если вы подозреваете, что MS хочет заблокировать пользователей: это очень затрудняет перенос современного кода на основе gcc в MSVC». Вы были бы правы, если бы они решили не реализовывать C++ 0x. Но, судя по всему, они работают (и много работают) над C++ 0x. Так что, я думаю, они не запирают людей ...

paercebal 28.09.2008 22:58

Тем не менее, я полагаю, что их истинная причина в том, что они сказали: сообщество C в Windows, возможно, почти не существует или незначительно по сравнению с сообществом C++ / C# /. NET / ASP. Таким образом, у них есть действительная точка зрения. Несмотря на то, что у меня есть Linux и, как и g ++, я не откажусь от MSVC++ только из-за C99, извините.

paercebal 28.09.2008 23:01

Если бы они дали нам хотя бы for (int i ;;) и inline.

Nick Van Brunt 03.02.2010 20:05

@Nick: вы можете использовать макрос для определения «inline» для компиляторов, совместимых с C99, и «__inline» для компилятора Visual C. См .: msdn.microsoft.com/en-us/library/z8y1yy88.aspx

paercebal 16.04.2011 01:32

Лучшая часть их ответа относительно разработки, ориентированной на C++ 0x, заключается в том, что сейчас, более 4 лет спустя, они все еще почти не поддерживают C++ 11. (Между тем gcc поддерживает почти все.)

GManNickG 23.02.2012 09:00

Я не понимаю, почему Microsoft не может реализовать части C99, которые уже поддерживаются C++ (например, for (int i;;), возможность объявлять локальные переменные где угодно и т. д.). И даже если они не хотят реализовывать некоторые языковые аспекты, по крайней мере, реализовать библиотеки. Соответствующий стандартам snprintf был бы хорошим началом.

jamesdlin 23.02.2012 09:41

@jamesdlin: Читая вопросы и ответы Х. Саттера, я считаю, что компилятор C в Visual Studio предназначен только для исторической поддержки, и его цель - поддерживать C89, ни больше, ни меньше. Тот факт, что вы можете делать все, о чем просили в C++, ограничивая себя C-подобным кодом, может быть еще одной причиной для них не трогать компилятор C. Что касается стандарта snprintf, я думаю, они считают, что можно найти / написать соответствующую версию. Суть в том, что реализация чего-либо означает, что они должны выделить ресурсы на его поддержку, и я думаю, для них нет веских причин делать это для C99.

paercebal 03.05.2012 23:13

@paercebal: В первом пункте этого обновления 2012-05-03 (которое вы процитировали в своем ответе) говорится, что их «основная цель - поддерживать большую часть C99 / C11, которая является подмножеством ISO C++ 98 / C++. 11 ". Это многообещающе и сильно отличается от «поддержки C89, не более того».

jamesdlin 03.05.2012 23:27

@jamesdlin: 1. Часть C99 / C11, которая является частью C++ 11, вполне может быть НЕ тем, что вам нужно. . . 2., вы должны знать, что Херб говорит о компиляторе C++, поддерживающем ограниченную часть C99 / C11. Нигде он не писал об обновлении компилятора C для поддержки чего-либо C99 или C11. Заключение: Вы уверены, что это действительно многообещающе для разработчика C, не желающего компилировать с использованием компилятора C++?

paercebal 04.05.2012 00:40

@paercebal: 1. В своем предыдущем комментарии я конкретно говорил о функциях C, которые уже были реализованы в C++ (C++ 98, не меньше). 2. Хотя он говорил о компиляторе C++, кажется странным явно упомянуть, что он будет поддерживать функции C99 / C11, которые являются подмножеством C++ 11. Это уже подразумевается, если они заявляют о поддержке C++ 11. Поэтому я считаю, что это подмножество функций также будет доступно при компиляции кода C.

jamesdlin 04.05.2012 02:03

@jamesdlin: Therefore my interpretation is that that subset of features also would be available when compiling C code: Понятно. Я бы тоже сделал такую ​​ошибку. До того, как прочитать этот пост от Херба Саттера, я даже не подозревал, что код компилятора C был навсегда заморожен. . . o.O. . .

paercebal 04.05.2012 20:30

FWIW, Предварительный просмотр VC2013 теперь поддерживает стандарты C++ 11 и C99. Проверьте что нового для разработчиков C / C++.

vulcan raven 27.06.2013 20:37

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

Euri Pinhollow 25.02.2017 13:12

Херб Саттер - председатель комитета по стандартизации ISO C++, а также работает в Microsoft. Я не знаю о стандарте Visual Studio C - в основном потому, что я никогда не использую простой C, - но Microsoft уверена, что пытается продвигать новый стандарт C++ вперед. Свидетельством этого является - как упоминалось в OregonGhost - TR1, включенный в последнюю версию Visual Studio Service Release.

Херб Саттер является председателем и активным членом комитета по стандартизации C++, а также архитектором программного обеспечения Visual Studio for Microsoft.

Он является одним из авторов новой модели памяти C++, стандартизированной для C++ 0x. Например, следующие документы:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2669.htm
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2197.pdf

иметь его имя на нем. Так что, я полагаю, включение C++ 0x в Windows гарантировано, пока Х. Саттер остается в Microsoft.

Что касается C99, который только частично включен в Visual Studio, я думаю, это вопрос приоритетов.

  • Наиболее интересные функции C99 уже присутствуют в C++ (встраивание, объявление переменных в любом месте, // комментарии и т. д.) И, вероятно, уже могут использоваться в C в Visual Studio (если только код C выполняется в компиляторе C++). См. Мой ответ здесь для более полного обсуждения функций C99 в C++.
  • C99 увеличивает расхождение между C и C++, добавляя функции, уже существующие в C++, но несовместимым образом (извините, но сложная реализация логический в C99 в лучшем случае смехотворна ... Подробнее см. http://david.tribble.com/text/cdiffs.htm)
  • Сообщество C в Windows кажется несуществующим или недостаточно важным, чтобы его признавать
  • Сообщество C++ в Windows кажется слишком важным, чтобы его игнорировать
  • .NET - это способ, которым Microsoft хочет, чтобы люди программировали в Windows. Это означает C#, VB.NET, возможно, C++ / CLI.

Итак, если бы я был Microsoft, зачем мне реализовывать функции, которые мало кто когда-либо будет использовать, когда те же функции уже предлагаются на более активных языках сообщества, которые уже используются большинством людей?

Заключение?

C++ 0x будет включен как расширение VS 2008 или в следующее поколение (поколения?) Visual Studio.

Функции C99, которые еще не реализованы, не появятся в ближайшие годы, если не произойдет чего-то драматического (страна, полная разработчиков C99, появится из ниоткуда?)

Изменить 2011-04-14

Судя по всему, «страна разработчиков C99» уже существует: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6415401
^ _ ^

Тем не менее, последний комментарий на: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6828778, я думаю, достаточно ясен.

Изменить 2012-05-03

Херб Саттер пояснил, что:

  1. Our primary goal is to support "most of C99/C11 that is a subset of ISO C++98/C++11."
  2. We also for historical reasons ship a C90 compiler which accepts (only) C90 and not C++
  3. We do not plan to support ISO C features that are not part of either C90 or ISO C++.

Сообщение в блоге добавляет ссылки и дальнейшие объяснения этих решений.

Источник: http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/

Честно говоря, логическая реализация в C99 была сделана для обеспечения обратной совместимости с нормальным кодом (то есть кодом, который определил, что bool имеет логическое значение).

Maciej Piechotka 14.04.2011 16:07

@Maciej Piechotka: Ты прав. Я точно не помню, что пытался там сделать. Думаю, я перепутал логическое и сложное: хотя комплексный тип C99 - хорошая попытка, он остается особым случаем, который требует появления полного комитета C. А как насчет матриц? или математика / физика векторы? Что смехотворно, так это усилия, необходимые для добавления одного полезного типа в C с поддержкой приведений и операторов, по сравнению с тем же действием в C++. C99 неполный по своей природе. Глядя на функцию _Generic в C1X, я снова вижу то же ограничение, сломанный хак с перегрузкой функций ...

paercebal 15.04.2011 02:34

Это: «Самые интересные функции C99 уже присутствуют в C++» - это просто ложь. Шестнадцатеричные средства форматирования с плавающей запятой и литералы. Функции математической библиотеки C99. Именованные инициализаторы для структур / объединений. Ключевое слово restrict. В C++ отсутствует масса замечательных функций C99, и это функции, которые я использую каждый день как программист на C.

Stephen Canon 15.04.2011 02:57

@ Стивен Кэнон: Прочтите, пожалуйста, мой ответ: stackoverflow.com/questions/3879636/…. Конечно, это ответ C++ для разработчиков C++, поэтому он не подходит для разработчиков C, не желающих использовать классы, конструкторы или перегруженные математические функции (кому нужен tgmath.h в C++?). Суть в том, что то, что важно, уже есть или легко реализовать. Что касается ключевого слова restrict, вы все еще можете использовать в C++, по-видимому: stackoverflow.com/questions/776283/…. . .

paercebal 15.04.2011 03:17

Поддержка restrict в C++ зависит от компилятора, а не от языка. Я заметил, что вы вообще не обращаетесь к шестнадцатеричным числам с плавающей запятой. Именованные инициализаторы для агрегатов намного лучше конструкторов, когда вам не нужны полноценные объекты C++. Я согласен с тем, что tgmacros ужасны, но я ими не пользуюсь. Многие компиляторы C в любом случае поддерживают перегрузку (если мы разрешаем компилятору C++ поддержку restrict, будет справедливо). Дело в том, что они два разных языка с двумя отдельными сообществами пользователей, и это не собирается меняться.

Stephen Canon 15.04.2011 03:24

@Stephen Canon: «Я заметил, что вы вообще не обращаетесь к шестнадцатеричным числам с плавающей запятой». Возможно, потому, что эта функция не является принципиальной. Я имею в виду, конечно, для вас это должно быть важно. Но, возможно, большинство разработчиков мало или вообще не заботятся об этой функции. Я, например, не променяю ни одно из недавно добавленных C++ 0x на это шестнадцатеричное представление.

paercebal 15.04.2011 03:41

@Stephen Canon: «Многие компиляторы C все равно поддерживают перегрузку»: Не могли бы вы назвать имена компиляторов C, поддерживающих перегрузку функций? Или, может быть, вы говорите о компиляторе C++, компилирующем код в стиле C?

paercebal 15.04.2011 03:45

Fwiw Я считаю отсутствие шестнадцатеричных литералов с плавающей запятой позором. И я не думаю, что я одинок с этой точкой зрения. У нас в библиотеке есть форматирование hexfloat. Не будет преувеличением думать, что нам также нужны литералы hexfloat. Я знаю 3 компилятора C++, которые поддерживают это как расширение с включенными правильными флагами.

Howard Hinnant 15.04.2011 04:00

@ Говард Хиннант: Любая неоптимальная деталь в языке кого-то смущает. Хотя это не демократия, я полагаю, что комитет C++ отдал приоритет тем функциям, которые считались более важными для более широкого сообщества C++. Возможно, для следующей версии C++. То же самое и с Visual C++. Они не «забывают» C99 назло. Они просто отдают приоритет функциям, необходимым их сообществу, и сегодня, я думаю, это C++ 0x.

paercebal 15.04.2011 04:16

@paercebal: вы имеете право на эту точку зрения, но в C++ нет ничего, что могло бы побудить меня отказаться от шестнадцатеричных литералов с плавающей запятой. Это как раз моя точка зрения. Конечно Программисты на C++ не заботятся о возможностях C99; наверное, поэтому они программисты на C++. И наоборот, существует целый мир программистов на C, которые совершенно не заботятся о функциях C++ и просто хотят, чтобы Microsoft предоставила компилятор C, который, по крайней мере, пытается придерживаться стандарта, как и все остальные.

Stephen Canon 15.04.2011 04:19

Я также хотел бы указать, что Ховард действительно работает в комитете C++ (спасибо, Ховард!) И, по-видимому, точно знает, почему нет шестнадцатеричных литералов с плавающей запятой.

Stephen Canon 15.04.2011 04:23

@paercebal: Полностью согласен. Мое намерение состояло в том, чтобы согласиться с тем, что C++ 11 не идеален, я считаю отсутствие шестнадцатеричных литералов дефектом и надеюсь исправить это в будущем. Идеальный стандарт требует бесконечного количества времени, и я очень доволен C++ 11. Насколько мне известно, работа над C++ 1x уже началась, и я надеюсь увидеть там шестнадцатеричные плавающие литералы. У нас уже есть опыт внедрения в этой области, поэтому, по-моему, это выглядит многообещающим. Конечно, никаких гарантий!

Howard Hinnant 15.04.2011 06:23

@Stephen Canon: «Есть целый мир программистов на C, которым совершенно не интересны функции C++, и они просто хотят, чтобы Microsoft предоставила компилятор C». Почти все C99 имеют эквивалент на C++, что означает, что программисты на C компилятор C++ все еще может иметь свои VLA или что-то еще. И то, что остается нереализуемым, не считается достаточно важным для достаточно большого сообщества, чтобы оправдать время, потраченное на это командой Visual Studio. В конце концов, я полагаю, что важность этого «всего мира программистов на C» - это то, о чем мы не согласны.

paercebal 15.04.2011 22:56

@paercebal: «эквиваленты» бесполезны. Существуют миллионы строк переносимого кода C, которые отлично работают на любой другой платформе. Вы предлагаете их переписать? Сообщество пользователей C99 достаточно велико, чтобы другой крупный поставщик компиляторов каждый хотя бы попытался обеспечить совместимость: IBM, HP, Apple, Intel, GNU, Sun, ARM, бесчисленные компиляторы встроенных устройств и т. д. C99 может не иметь значения для программистов Окна, но программы Windows представляют собой крошечную часть всего написанного кода.

Stephen Canon 15.04.2011 23:03

@ Говард Хиннант: Вы состоите в комитете C++? Вау!!! Спасибо вам и всем остальным участникам за C++ 0x (или C++ 11, как есть). Это отличная работа, потребовалось время, но эй, это потрясающе!

paercebal 15.04.2011 23:06

@Stephen Canon: Ваши аргументы интересны и т. д., Но есть и другие компиляторы, кроме Visual Studio для Windows, некоторые из которых поддерживают C99, поэтому эти «миллионы строк переносимого кода C» все еще можно скомпилировать в Windows. Точно так же, говоря о Sun, их компилятор C++ настолько отсталый, что нам пришлось ограничить возможности C++, которые мы использовали в нашем производственном кроссплатформенном коде. Ну и что? Мы жили с этим и нашли обходные пути. Я уверен, что сообщество C может справиться с тем фактом, что один «тупой» компилятор на одной «тупой» платформе не поддерживает C99. Даже поддержка C1x C99 условна ...

paercebal 15.04.2011 23:18

@paercebal: Вы правы, я должен уточнить: я был бы совершенно счастлив, если бы Microsoft признала, что им наплевать на C, и просто прекратила утверждать, что они поставляют компилятор C. Меня совершенно не волнует, поддерживает ли MSVC C.

Stephen Canon 16.04.2011 01:31

@ Стивен Кэнон: Точнее. . . 1. Microsoft не раз признавала, что язык C не является их приоритетом. . . 2. Microsoft поставляет компилятор C, который поддерживает C89, но не C99 (и они никогда не заявляли об обратном).

paercebal 16.04.2011 02:06

К сожалению, поддержки MSVC для C очень не хватает. Он поддерживает только часть C99, которая является подмножеством C++ ... что означает, например, что физически невозможно скомпилировать ffmpeg или его библиотеки libav * в MSVC, потому что они используют многие функции C99, такие как именованные элементы структуры. Это усугубляется тем фактом, что libavcodec также требует компилятора, который поддерживает выравнивание стека, чего нет в MSVC.

Я работаю над x264, который, в отличие от ffmpeg делает, прилагает усилия для поддержки MSVC, хотя это часто само по себе было кошмаром. Он не поддерживает выравнивание стека, даже если вы явно передаете вызов функции наивысшего уровня через явную функцию выравнивания стека на основе сборки, поэтому все функции, требующие выравнивания стека, должны быть отключены. Также очень раздражало, что я тоже не могу использовать vararrays; возможно, это к лучшему, поскольку, очевидно, GCC сильно пессимизирует их с точки зрения производительности.

Я принимал участие в работе над ISO C++ (2000–2005), и Microsoft внесла значительный вклад в этот язык. Нет сомнений в том, что они будут работать на C++ 0x, но им потребуется немного больше времени, чем, скажем, Intel. Micosoft приходится иметь дело с более крупной кодовой базой, которая часто использует их собственные расширения. Это просто увеличивает длину тестовой базы. Тем не менее, в конечном итоге они будут поддерживать большую часть C++ 0x (хотя экспорт все еще не нравится, по крайней мере, я так понимаю).

Когда дело доходит до ISO C, люди, работающие над стандартом, не являются представителями рынка Microsoft. Клиенты Microsoft могут использовать C++ 98, если они просто ищут лучший C. Так зачем Microsoft тратить деньги на C99? Конечно, детали, отобранные Microsoft, но это нормальный бизнес. Они все равно понадобятся для C++ 0x, так зачем ждать?

Обновленная информация по этому поводу:

В настоящее время (10 ноября 2008 г.) существует "Community Tech Preview" (CTP) VS2010, который содержит предварительную версию VC10, в которой реализованы немного части C++ 0x (обратите внимание, что VC10 не будет иметь полного набора C++ 0x изменения реализованы даже после выпуска VC10):

http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&displaylang=en

Некоторые подробности о том, что нового в VC10 CTP:

Как отмечалось в статье выше, «Компилятор Visual C++ в сентябрьской версии Microsoft Visual Studio 2010 Community Technology Preview (CTP) содержит поддержку четырех языковых функций C++ 0x, а именно:»

  • лямбды,
  • авто,
  • static_assert,
  • ссылки rvalue

Команда Visual C++ опубликовала в http://blogs.msdn.com/b/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx таблицу функций C++ 0x, которые поддерживает выпуск 2010 года. Поскольку между спецификацией и реализацией может быть запаздывание, это кажется вполне разумным. В Википедии есть хорошая статья о спецификации. На тот момент, когда я пишу это, он еще не закончен.

Более свежая публикация о совместимости функций MSVC C++ 11 для MSVC 2010 и 2011 - сейчас онлайн.

Начиная с VC2013 превью 1, C99 поддерживается более разнообразный набор C++ 11 и некоторые недавно представленные стандарты C++ 14. Посетите официальный блог, чтобы узнать больше: http://blogs.msdn.com/b/vcblog/archive/2013/06/27/what-s-new-for-visual-c-developers-in-vs2013-preview.aspx

Обновлять:

Из https://news.ycombinator.com/item?id=9434483 (Stephan T Lavavej aka: STL является сопровождающим команды STL @VC):

Specifically, in 2015 our C99 Standard Library implementation is complete, except for tgmath.h (irrelevant in C++) and the CX_LIMITED_RANGE/FP_CONTRACT pragma macros.

Подробности читайте в этом посте: http://blogs.msdn.com/b/vcblog/archive/2015/04/29/c-11-14-17-features-in-vs-2015-rc.aspx.

Насколько я могу судить, только частичная поддержка C99: blogs.msdn.com/b/vcblog/archive/2013/07/19/… "... Мы знаем, что это не полная поддержка функций библиотеки C99."

sdfqwerqaz1 29.01.2015 16:32

@ sdfqwerqaz1, см. комментарий STL здесь: "команды компиляторов и библиотек будут рассматривать их в индивидуальном порядке, но наш главный приоритет - соответствие C++. Например, поскольку C++ 11/14 включает стандартную библиотеку C99 по ссылке, предварительная версия 2015 полностью поддерживает C99 Стандартная библиотека (с единственным упущением, это tgmath.h, который требует магии компилятора C и не имеет отношения к C++, который имеет перегрузку, и CX_LIMITED_RANGE / FP_CONTRACT, который также требует поддержки компилятора) ".

vulcan raven 30.01.2015 12:47

Visual C++ Bloq предоставляет много информации о нескольких интересных моментах, касающихся поддержки C++ 11 в VC++ 11, включая несколько таблиц.

  • Возможности базового языка C++ 11
  • Возможности базового языка C++ 11: параллелизм
  • Возможности базового языка C++ 11: C99
  • Размеры контейнеров x86 (байты)
  • Размеры контейнера x64 (байты)

Блог группы разработчиков Visual C++, Возможности C++ 11 в Visual C++ 11

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