众所周知,C ++都采用C语言的特性,但C语言也标准化了C ++特性。 C1x已经获得了完整的表达临时表(之前它只有序列点临时表)。 C1x也从C ++ 11线程工作中获益。
我想知道C1x从C ++中获取了哪些其他功能?
答案 0 :(得分:8)
一些相似之处包括:
_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 ++中明确继承的。
答案 1 :(得分:6)
C1x(5.1.2.4)的线程部分几乎完全取自C ++ 11。出于所有实际目的,"冲突" 和"原子操作" 等术语具有相同的定义。
Alignment也受到C ++ 11的启发:关键字为alignof
,最大对齐类型为max_align_t
(当然,删除std::
命名空间)。