2010-07-27 7 views
16

C99 по-прежнему не поддерживается многими компиляторами, и большая часть внимания теперь находится на C++ и его предстоящем стандарте C++ 1x.C1x: Когда он приземлится, чего ожидать?

Мне любопытно, что C «получит» в своем следующем стандарте, когда он это получит, и как он будет поддерживать конкурентоспособность C. C и C++, как известно, поддерживают улучшения друг друга, C будет питаться стандартом C++ 1x?

Что я могу ожидать в будущем C?

+4

Есть ли даже толчок для другого пересмотра С?Что-нибудь еще, что я могу думать о том, что кто-то может захотеть в C, на самом деле является намеком на то, что они должны перейти на язык более высокого уровня ... –

+6

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

+0

Я никогда не говорил, что это не так. Но я не вижу, что необходимо, чтобы сохранить его «применимым» или «актуальным». Большинство программ по-прежнему работает на инфраструктуре, написанной на C, и это не изменится в ближайшее время. –

ответ

9

ISO/IEC 9899:2011 standard, ака C11, был опубликован в December 2011.

Последний проект - N1570; Я не знаю никаких различий между ним и окончательным стандартом. Уже существует Техническое исправление, устанавливающее надзор в спецификации __STDC_VERSION__ (теперь 201112L) и дополнительно __STDC_LIB_EXT1__ (теперь 201112L).

4

Возможно, лучшим местом для поиска текущего состояния является просмотр latest draft новой версии стандарта C. Предупреждение: хотя он поступает непосредственно из комитета, сервер позади этой ссылки не всегда является наиболее отзывчивым ...

6

Я набрал список функций, но заметил, что у Wikipedia page on C1X есть довольно полный список всех предлагаемых изменения.

На рабочих группах по стандарту ISO C сообщения «после встречи» на их website. Один из наиболее интересных - это Editor's Report.

+5

Мне было бы интересно услышать больше деталей, чем на странице Википедии. Особенно о новых типах символов. Будет ли целый ряд функций для манипулирования строками этих типов (ala 'strstr' и т. Д.) Или просто функции для преобразования назад и вперед в многобайтовые строки? Что касается потоков, это единственное дополнение к ключевому слову '__thread'? Или может быть новый API для переносимых потоков с меньшей сложностью и более здравым смыслом, чем потоки POSIX? –

+1

@R ..: Именно то, что я после –

+1

Кроме того, мне интересно, как могут взаимодействовать потоки C1x и потоки POSIX. Было бы очень неудачно, если бы базовая реализация не могла быть одинаковой, доступной либо через простой API, который будет реализован в различных системах (C1x), так и в полнофункциональном API, доступном только в средах POSIX. –

5

Вот краткое описание на странице Википедии:

  • спецификация Alignment (_Align спецификатора, alignof оператора, aligned_alloc функции)
  • поддержки многопоточности (_Thread_local хранения класса спецификатора, <threads.h> заголовка, включая создание потоков/функция управления , мьютекс, переменная состояния и функциональность хранилища, зависящие от потока)
  • Улучшенная поддержка Unicode (char16_t и char32_t типы для хранения UTF-16/U Данные TF-32 закодированы, в том числе соответствующие U и строковые ¯u буквенные префиксы и функции преобразования в <uchar.h>)
  • Удаление gets функции
  • границы проверки интерфейсов (Приложение K)
  • функции Analyzability (Приложение L)
+9

Хорошее избавление от 'gets()'. – dreamlax

+2

dreamlax: Действительно, я собирался поставить «* yay! *» После этого предмета, но думал, что это может быть плохой вкус ... – Gabe

+0

По-прежнему нет пространств имен? pfft ... –

4

Я выгляжу как gcc по состоянию на 4,6 - это starting, чтобы посмотреть C1x. Они утверждают, что:

  • Статические утверждения (_Static_assert ключевых слов)
  • TYPEDEF переопределение
  • Новые макросы в <float.h>
  • Анонимные структуры и объединения

 Смежные вопросы

  • Нет связанных вопросов^_^