Каков официальный статус поддержки C99 в VS2013?

Я вижу, что VS2013 добавил поддержку большого количества основных функций основного языка C99. Теперь он поддерживает сложные литералы, назначенные инициализаторы, переменные macros, чередующиеся объявления и заявления, чтобы назвать несколько.

Это указывает на то, что разработчики VS сделали серьезные шаги для поддержки C99 в Visual Studio. Тем не менее, некоторые из этих функций не являются частью языка C ++, что, как представляется, является заметным отклонением от ранее объявленной страtagsи разработки (например, «VS C-компилятор будет поддерживать только те функции C99, которые также являются частью C ++»).

Итак, есть ли официальное или полуофициальное слово о том, что происходит? Кажется, я ничего не могу найти в Сети. Были ли официально объявлены эти функции C99? Есть ли приверженность продолжению поддержки C99 в VS? Или это просто какая-то «мошенническая» неофициальная разработка?

Есть несколько публичных официальных обсуждений этого вопроса с разработчиками Microsoft, « Дорожная карта соответствия C ++», в которой говорится:

Herb также объявила, что в ответ на запросы клиентов версия RTM также будет включать в себя несколько тактических языковых расширений C99 при компиляции кода C, так что некоторые популярные библиотеки сообщества (включая FFmpeg) теперь смогут компилироваться с Visual C ++ 2013.

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

У нас есть возможности C ++ 11/14 STL, исправления и ломающиеся изменения в записи в блоге VS 2013 от STL :

Кроме того, некоторые функции C99 Core Language будут реализованы в RTM 2013 года:

  • C99 _Bool

  • Смешанные литералы C99

  • C99 назначенные инициализаторы

  • Объявления переменной C99

и поддержка библиотеки C99 в записи блога Visual Studio 2013 от Pat Brenner, которая открывается:

В этом сообщении в блоге я хочу поделиться некоторой информацией о поддержке C99, добавленной в библиотеку времени выполнения C в Visual Studio 2013.

и заканчивается:

Мы знаем, что это не полная поддержка функций библиотеки C99. Насколько нам известно, недостающие части:

  • Заголовка tgmath.h отсутствует. Для этого заголовка необходима поддержка компилятора C. Обратите внимание, что заголовок ctgmath был добавлен – это возможно, потому что этот заголовок не требует заголовков tgmath.h только для ccomplex и cmath.
  • Заголовка uchar.h отсутствует. Это от C Unicode TR. Несколько спецификаторов формата в семействе printf еще не поддерживаются.
  • Функции snprintf и snwprintf отсутствуют в файлах stdio.h и wchar.h.

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

Благодаря cremno для указания другого сообщения в блоге C Runtime (CRT) Особенности, исправления и ломающиеся изменения в Visual Studio 14 CTP1, который гласит:

В CTP Visual Studio «14» мы полностью внедрили стандартную библиотеку C99, за исключением любых функций библиотеки, которые зависят от функций компилятора, еще не поддерживаемых компилятором Visual C ++ (особенно, не реализовано). Несомненно, есть некоторые проблемы с совместимостью – мы знаем несколько, в том числе, что _Exit отсутствует, а wcstok имеет неправильную подпись, и мы работаем над их исправлением. Если вы обнаружили ошибку или недостающую функцию, сообщите об этом в Microsoft Connect. Если вы сообщите об ошибках сейчас, есть очень хороший шанс, что мы сможем исправить их до RTM.

и имеет множество подробностей, которые нелегко суммировать.

  • Случайное исключение
  • Visual Studio 2010 - рекомендуемые расширения
  • Комбинация клавиш Visual Studio для автоматического добавления необходимого оператора 'using'
  • Как установить фильтры Visual Studio для вложенной подкаталога с помощью cmake
  • Отсутствует комментарий XML для общедоступного типа или члена
  • Как загрузить пакет Nuget без расширения nuget.exe или Visual Studio?
  • Разница между scanf и scanf_s
  • Как инициировать событие при изменении значения переменной?
  • Использование библиотеки c ++ в c #
  • WebAPI StreamContent vs PushStreamContent
  • Как использовать Visual Studio для проектов на C # вместо VB.NET?
  • Давайте будем гением компьютера.