C ++構文を使用しているという事実と、ポインターやデストラクタなどの利点を除いて、実際の利点はわかりません。
4 に答える
C# よりも C++/CLI を使用する理由について話している場合、主な理由は次のとおりだと思います。
- C++ 開発者にとってはより自然かもしれません (これはおそらく正しくないと思いますが)。
- C++/CLI には、ネイティブ環境とマネージド環境を橋渡しするための非常に優れた機能があります (「IJW」 - It Just Works - テクノロジーを使用)
ハーブ・サッターがおそらく最良の概要を示していると思います。
C#/.NET ではなくネイティブ C++ を使用する理由を知りたい場合、これは、ネイティブ コード (完全な制御、場合によっては速度の利点) よりも管理された環境 (安全性、開発の容易さ) が必要な理由に要約されます。それぞれに議論があり、その答えは、開発したいものと市場がどうなるかによって異なります。
C++/CLI について言及し、それを C# と比較していると思います。C++/CLI は C++ の「フレーバー」ではありません。これは、まったく異なる標準ライブラリとまったく異なる規則を持つ、まったく新しい言語です。
職場では、C++/CLI が C++ と .NET の間の接着言語として価値があることがわかりましたが、インターフェイスの接着以外には使用しません。C# は、他のすべてのアプリケーションで C++ よりも大きな利点があります。
Adam が説明するような MS C++ 拡張機能について言及している場合、作業が容易になるのであれば、それらを使用しない理由はありません。
C++\CLI を使用する本当の理由は、DotNet 言語をネイティブ C++ と通信するためです。たとえば、多くの企業は、最初に GUI を .Net に移行し、いくつかのロジックを C++ に任せます。C++\CLI は、2 つのテクノ間の通信に適したブリッジです。そのために COM コンポーネントを使用することもできますが、多くの理由から、それは適切な選択ではありません。
異なるフレーバーのC++を相互に比較することは、C ++をC#と比較することと同じ質問ではないと思います。C#は、C++のさまざまなフレーバー間の違いと比較して非常に異なる獣です。