17

C++ が C の機能を取り入れていることはよく知られていますが、C は C++ の機能も標準化しています。C1x は、完全な式のテンポラリーを取得しました (以前は、シーケンス ポイントのテンポラリーしかありませんでした)。C1x は、C++11 のスレッド化の取り組みも取り入れています。

C1x が C++ から取った他の機能は何だろうか?

4

2 に答える 2

8

いくつかの類似点は次のとおりです。

  • 静的アサーション:_Static_assert ( constant-expression , string-literal );
  • アトミック サポート
  • Unicode サポート - いくつかの typedef (例えばchar16_t= uint_least16_t)、リテラル、およびユーティリティを追加します。
  • _Generic

_Genericテンプレートの力で得られるものよりも、実際にはオーバーロードに似ています。のユビキタスな例_Genericは次のとおりです。

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

..しかし、どれが C++ から明示的に継承されたものかはわかりません。

于 2011-12-06T08:52:34.367 に答える
6

C1x(5.1.2.4)のスレッド部分は、ほぼ文字通りC++11から取得されます。「競合」「不可分操作」などの用語は、すべての実用的な目的で同じ定義を持っています。

アラインメントもC++11に触発されています。キーワードはalignof、であり、アラインメントされた最大タイプは(もちろん名前空間をmax_align_t削除します)です。std::

于 2011-12-06T09:41:03.767 に答える