私は最近C11で探求し、多くの新機能が私のコードをC言語でより簡単にします。私はこれらの機能がC++ 11で正式にサポートされているのだろうかと思います。私の懸念事項は、実装やコンパイラの問題ではなく、新しいC++標準です。C++ 11はC11の新機能をサポートしていますか?
答えて
いいえ、C++ 11はC11のすべての機能をサポートしていません。それはC99のすべての機能をサポートしていません。たとえば、可変長配列はC99に導入されましたが、C++ではそれらをまだサポートしていません。詳細については、this questionを参照してください。
C++ 11標準はC99標準、特にC標準ライブラリを参照しています。
C++ 11では、C99ではなくC90にある機能の一部をサポートしていますが、一部ではありません。 (C99固有の機能の中には、C++でサポートされていないものもあれば、適切でないものもあります)
C11はC99の上に数多くの機能を追加しました。これらの新機能のほとんどはではなく、もC++に追加されました。
例外として、スレッドサポートがあります(C11では<threads.h>
、C++では<thread>
)。私はこれがどれほど似ているかを知るためにこれを十分に調べていません。
(C11は、その新機能、ならびにいくつかのC99機能の一部、任意した;それはまた、C++には反映されないです)
私の理解では、C11はスレッドと同期プリミティブを扱うために言語サポートとコンポーネントの両方の形式でスレッドサポートを追加しました。私はこれらの機能のすべてがC++であると思いますが、仕様はCとC++の間で必ずしも同じではありません。 –
匿名構造、返り値関数、いくつかの型ジェネリック式など、他の小さなものもたくさんありました。そして、最も重要なことは、最終的に 'gets()'を取り除いたことです。 –
C11にC++ 11スレッドサポート(およびアトミック)が追加されました;) –
主要な追加のうち二つはC11とC +との間で共有されています+11:スレッドとアトミック私は新しいメモリシーケンシングモデルも両者で共有されていると思いますが、C++ 11がそれを確実に確信できるほどよく分かりません。
C11に加えて、おそらくC++には、_Generic
という一般的な式を入力することはありません。多くのユースケース、特に関数のオーバーロードには、それを実装するC++の構造体が既にあります。コンパイル時定数定数式の検出など、他のより複雑な使用例は、C++でカバーされていません。 C++ 1にはconstexpr
がありますが、名前以外は、式が定数式であるかどうかを判断するツールではなく、オブジェクトまたは関数の戻り値が定数であることを指定するツールではないことが示唆されます。 2つのケース(定数と非定数)に対して完全に異なるコードを生成することは可能ではないようです。
C++の主な使用例では_Generic
は不要であるだけでなく、前処理段階のマクロプログラミングにも大きく依存しています。 C++コミュニティの大部分がマクロを嫌うので、それは確かにコンセンサスを見つけることはできません。
downvoted。 C++ 11は 'constexpr'でコンパイル時定数式を検出できます。 – TemplateRex
@TemplateRex、私はそれをどのようにCの機能と比較して調べます。私に訂正の時間を与えずにそのようなことをダウン投票すると、少し極端に思える。あなたは、最後の日に私を追いかけて、何年も前に与えたいくつかの古い答えを下降させている人は、何かチャンスですか? –
いいえ、私はいつもコメントを残そうとします、そして、私は通常、答えに更新があるかどうかをチェックします。他の下降音に関しては、[この質問](http://stackoverflow.com/q/19120326/819272)であなたのタグを編集することで、昨夜のC++チャットラウンジの混乱で数人の人がいると思います。 (私のものを含む)も同時に(*コメントなしで)下降表示されました。 – TemplateRex
- 1. Androidで最新のC++ 11機能NDK
- 2. 再定義は、C11機能
- 3. uCLinuxはC++ 11をサポートしていますか?
- 4. すべてのC++ 11並行処理機能をサポートするC++コンパイラ?
- 5. C++ 11機能チェック
- 6. iOS 11の新しいスキャン機能を再現します。
- 7. C++ 11アトミック:なぜこのコードは機能しますか?
- 8. ブースト機能は、C++ 11ではC++ 11の生の文字列
- 9. boostはC++ 11のstd :: tupleのシリアル化をサポートしていますか?
- 10. 新しい標準C11(C++ 11ではなく)にconstexprがありますか、または今後計画されていますか?
- 11. どのようにC++コンパイラがC++ 11のアトミックをサポートすることができますか?C++ 11のメモリモデルはサポートしていません
- 12. のApple ID IOS 11ベータ機能、NFCオプションは、私は新しい(まだベータ版)IOS 11 NFC機能を試しています
- 13. tvOSはチャットアプリケーションの通知機能をサポートしていますか?
- 14. アンドロイドwebviewブラウザはhtml5の機能をサポートしていますか?
- 15. はチャート3.0.1のドリルダウン機能をサポートしていますか?
- 16. C++ 11結合ソート機能
- 17. C#with NUnitは、ステップ、機能/ストーリー、パラメータなどのAllure機能をサポートしていますか?
- 18. iOS 11(ベータ版)のwebKitはWebRTCをサポートしていますか?
- 19. Aerospikeはランク付け機能をサポートしていますか?
- 20. RCP3はカスケードウィンドウ機能をサポートしていますか?
- 21. cockroachdbは拡張機能をサポートしていますか?
- 22. QMapはカスタムコンパレータ機能をサポートしていますか?
- 23. Google Cloud SQLは分散機能をサポートしていますか?
- 24. Opencart3ではOpencart2拡張機能をサポートしていますか?
- 25. 特異性はgpuリソースフレームワーク機能をサポートしていますか?
- 26. Amazon Redshiftは拡張機能dblinkをサポートしていますか?
- 27. Elasticsearch 2.4は.gte機能をサポートしていますか?
- 28. Google People APIはクエリ機能をサポートしていますか
- 29. protobuf-netはprotobuf拡張機能をサポートしていますか?
- 30. Flex 3はローカリゼーション/グローバリゼーション機能をサポートしていますか?
一部ですが、2つの言語に分かれています。 – chris
特に、どの機能がありますか?新しいCの機能にはC++の機能もあります(ただし、@chrisは独立した言語であると言っています)。 –
私はC++ 11に精通していますが、C11には馴染みがありません。ために。また、2つの言語が異なるアプローチと機能を追求し、CからC++にマッピングされない領域もあります。 –