C1x 从 C++ 继承了什么?

发布于 2024-12-19 20:30:51 字数 135 浏览 2 评论 0原文

众所周知,C++ 继承了 C 的功能,但 C 也标准化了 C++ 的功能。 C1x 已经获得了完整的表达临时数据(之前它只有序列点临时数据)。 C1x 还借鉴了 C++11 线程工作。

我想知道 C1x 从 C++ 中还继承了哪些其他功能?

It is well known that both C++ takes features from C but that C also standardizes C++ features. C1x has gained full expression temporaries (previously it only had sequence point temporaries). C1x also took from the C++11 threading effort.

I wonder what other features C1x took from C++?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苍暮颜 2024-12-26 20:30:51

一些相似之处包括:

  • 静态断言:_Static_assert (constant-express, string-literal);
  • 原子支持
  • unicode 支持 - 添加一些 typedef(例如 char16_t=uint_least16_t code>)、文字和实用程序。
  • _Generic

_Generic 实际上更像是重载,而不是我们拥有模板的功能。 _Generic 的普遍示例是:

#define cbrt(X) _Generic((X), long double: cbrtl, \
                              default: cbrt, \
                              float: cbrtf)(X) 

..但我不确定哪些是从 C++ 明确继承的。

Some similarities include:

  • static assertions: _Static_assert ( constant-expression , string-literal );
  • atomic support
  • unicode support - adds some typedefs (e.g. char16_t=uint_least16_t), literals, and utilities.
  • _Generic

_Generic is really more like overloading than what we have with the power of templates. The ubiquitous example of _Generic is:

#define cbrt(X) _Generic((X), long double: cbrtl, \
                              default: cbrt, \
                              float: cbrtf)(X) 

..but I'm not sure which were inherited expressly from C++.

明天过后 2024-12-26 20:30:51

C1x (5.1.2.4) 的线程部分几乎直接取自 C++11。出于所有实际目的,“冲突”和“原子操作”等术语具有相同的定义。

对齐也受到 C++11 的启发:关键字是 alignof,最大对齐类型是 max_align_t(删除 std:: 命名空间) , 当然)。

The threading part of C1x (5.1.2.4) is taken almost literally from C++11. Terms like "conflict" and "atomic operations" have identical definitions, for all practical purposes.

Alignment is also inspired by C++11: the keyword is alignof, and the maximum aligned type is max_align_t (dropping the std:: namespace, of course).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文