众所周知,C++ 都继承了 C 的特性,但 C 也标准化了 C++ 的特性。C1x 获得了完整的表达临时性(以前它只有序列点临时性)。C1x 也借鉴了 C++11 线程工作。
我想知道 C1x 从 C++ 中获得了哪些其他功能?
一些相似之处包括:
_Static_assert ( constant-expression , string-literal );
char16_t
= uint_least16_t
)、文字和实用程序。_Generic
_Generic
真的更像是重载,而不是我们拥有的模板的力量。普遍存在的例子_Generic
是:
#define cbrt(X) _Generic((X), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(X)
..但我不确定哪些是从 C++ 明确继承的。
C1x (5.1.2.4) 的线程部分几乎完全取自 C++11。出于所有实际目的,诸如“冲突”和“原子操作”之类的术语具有相同的定义。
对齐也受到 C++11 的启发:关键字是alignof
,最大对齐类型是max_align_t
(当然,删除std::
命名空间)。