C1x:什么时候降落,会发生什么?

Mat*_*ner 16 c language-features c11

C99仍然不受许多编译器的支持,现在很大程度上关注C++及其即将推出的标准C++ 1x.

我很好奇C会在下一个标准中获得什么,何时会获得它,以及它将如何保持C的竞争力.众所周知,C和C++是相互依赖的改进,C是否会以C++ 1x标准为基础?

在C的未来,我能期待什么?

Juk*_*ela 9

ISO/IEC 9899:2011标准,又称为C11,发表在2011年12月.

最新的草案是N1570 ; 我不知道它和最终标准之间有任何差异.已经有技术勘误修正了__STDC_VERSION__(现在201112L)和可选__STDC_LIB_EXT1__(现在201112L)规范中的疏忽.


sch*_*hot 6

我正在输入一系列功能,但注意到C1X上的维基百科页面列出了所有提议的更改.

在ISO C工作组发布'在他们的网站上发送邮件后' .其中一个更有趣的是编辑报告.

  • 我有兴趣听到比维基百科页面提供的更多细节.特别是关于新的角色类型.是否会有一整套函数来操作这些类型的字符串(ala`strstr`等)或只是用于来回转换为多字节字符串的函数?至于线程,是唯一添加`__thread`关键字?或者可能有一个新的可移植线程API比POSIX线程更复杂,更健全? (5认同)
  • 没有人会使用C的线程,如果它们与已经广泛使用,记录和理解的POSIX线程截然不同. (3认同)
  • 我听说过C1x和C++ 11很难同步他们的线程模型和原子.@R他们添加了_Atomic关键字. (2认同)

Gab*_*abe 5

以下是维基百科页面的摘要:

  • 对齐规范(_Align说明符,alignof运算符,aligned_alloc函数)
  • 多线程支持(_Thread_local存储类说明符,<threads.h>包括线程创建/管理功能的头文件,互斥锁,条件变量和特定于线程的存储功能)
  • 改进的Unicode支持(char16_t以及char32_t用于存储UTF-16/UTF-32编码数据的类型,包括相应的u和U字符串文字前缀和转换函数<uchar.h>)
  • 删除gets功能
  • 界限检查界面(附件K)
  • 可分析性特征(附件L)

  • 很好地解决了`gets()`. (9认同)
  • 在最新的草案中我们得到_Generic!手动版C++的函数重载. (6认同)
  • dreamlax:事实上,我会在那个项目之后加上"*yay!*",但是认为它可能是味道不佳...... (2认同)
  • @Joe D:类型泛型看起来很棒. (2认同)