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::