13

C ++ CLIコンパイラは、変更なしでC ++クラスのいくつかの大きなセットをコンパイルできますか?

C ++CLIはC++のスーパーセットですか?

4

6 に答える 6

10

ウィキペディアによると:

C++/CLI は、C++ スーパーセット指向の Managed C++ ではなく、独自の言語 (たとえば、新しいキーワード セットを含む) と考える必要があります。

于 2008-10-07T18:14:03.967 に答える
4

技術的にはできませんが、C++ コードがどれほど標準的であるかによっては、おそらく問題ないでしょう。Windows に取り掛かると、問題が発生する可能性があります。仕事で使用するゲーム エンジン全体を一度 C++/CLI でコンパイルしたところ、問題なく動作しました。同僚がすべての mozilla に対して同じことをしましたが、そのような運はありませんでした。

于 2008-10-07T19:11:09.530 に答える
2

私はまだ C++/CLI の学習曲線に慣れていませんが、私自身も同じ疑問を持っていました。これまでのところ、C++/CLI は言語として標準 C++ のスーパーセットであると判断しています。

CLI 拡張機能を使用しない場合、C++ コードはネイティブのアンマネージ コードになり、本質的に同じになりますが、ネイティブ x86 ではなく CLR IL にコンパイルされます。

CLI 拡張機能の使用を開始すると (そして、オブジェクト/ハンドル/マネージド クラスの使用に陥り始めると)、基礎となる CLR プラットフォームとのやり取りがより頻繁に開始されます。その時点で、それは本質的に新しい「言語」になり、「管理されていない」側と「管理されている」側の間で思考を分離する必要があります。

于 2009-01-29T20:56:08.533 に答える
2

C++/CLI は C++ のスーパーセットではありません。むしろ、追加のあるサブセットです。EG C++/CLI は多重継承をサポートしていません。

アンジェロ

于 2010-10-24T00:25:33.633 に答える
1

Qtライブラリ全体(巨大です)をC ++ / CLIとしてコンパイルできましたが、マイナーな変更が加えられました(主にビルド​​環境で、Qtソースコードの1つのバグも修正されました)。

于 2012-04-04T09:13:44.963 に答える
1

Marcus Heege の著書「Expert C++/CLI.NET for Visual C++ Programmers」の 3 ページには、次のように記載されています。

C++/CLI は、CLI の実装が提供するサービスを利用するために C++ 言語に作成された一連の拡張機能です。

そして同じページのさらに下:

C++/CLI は、C++ 言語のスーパーセットです。

彼の優れた本は、ここから無料で入手できます。

于 2009-05-19T05:02:26.637 に答える