Херб Саттер является председателем и активным членом комитета по стандартизации 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
Херб Саттер пояснил, что:
- Наша основная цель - поддерживать «большую часть C99 / C11, которая является подмножеством ISO C ++ 98 / C ++ 11».
- Мы также по историческим причинам поставляем компилятор C90, который принимает (только) C90, а не C ++.
- Мы не планируем поддерживать функции ISO C, которые не являются частью C90 или ISO C ++.
Сообщение в блоге добавляет ссылки и дальнейшие объяснения этих решений.
Источник: http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/