Есть ли в c-компиляторах какие-либо функции C1X? - PullRequest
6 голосов
/ 01 сентября 2011

Реализуют ли какие-либо компиляторы c какие-либо функции C1X?

P.S .: Есть ли способ эмулировать некоторые из этих функций в современных компиляторах c

Ответы [ 4 ]

7 голосов
/ 10 сентября 2011

Помимо gcc, clang начал добавлять поддержку функций C1x. В частности, есть поддержка _Generic и _Static_assert. Также могут быть реализованы некоторые другие функции, но я их не пробовал.

7 голосов
/ 01 сентября 2011

GCC 4.6 имеет некоторую экспериментальную поддержку функций C1X:

В настоящее время существует экспериментальная поддержка некоторых функций в предстоящей версии C1X стандарта ISO C. Эта поддержка может быть выбрана с -std = c1x или -std = gnu1x для C1X с расширениями GNU. Обратите внимание, что эта поддержка является экспериментальной и может измениться несовместимо в будущих выпусках для согласованности с изменениями в черновик стандарта C1X. Следующие функции поддерживаются, как описано в проекте C1X N1539 (с изменениями, согласованными на совещании WG14 в марте 2011 года); некоторые другие функции уже поддерживаются без необходимости изменения компилятора или имеют некоторую поддержку, но не в полном соответствии с N1539 (с изменениями).

  • Статические утверждения (ключевое слово _Static_assert)
  • Переопределение типа определения
  • Новые макросы в
  • Анонимные структуры и союзы
3 голосов
/ 02 сентября 2011

Основываясь на просмотре списков и тестовом пакете gcc (ls gcc / gcc / testsuite / gcc.dg / c1x *):

  • Я выгляжу как _Noreturn идет в gcc-4.7.
  • Из тестового набора похоже, что строки в юникоде тоже будут.
  • Также похоже, что макросы CMPLX тоже работают .
  • Возможно _Общий появится в gcc-4.8.
2 голосов
/ 08 мая 2013

Вы можете проверить Pelles C (доступно только для Windows).

...