純粋なC++とはどういう意味ですか?VisualC++やGNUC++などのC++のさまざまなバージョンについて説明してください。
これらのタイプのC++用のコンパイラはどうですか?
純粋な C++ は、ベンダー固有の拡張機能が使用されていない、ISO 標準に従った C++ を意味します。
つまり、標準をサポートするすべての実装で移植可能でなければなりません。そうしないと、特定のベンダーに縛られていることに気付くかもしれませんが、必ずしも悪いことではありませんが、その決定の意味を理解する必要があります.
Pure C++ は、ISO C++ 標準で定義されたセマンティクスのみを使用する C++ の形式です。
Pure C++ で実装されたコードは、標準準拠のすべての C++ コンパイラ間で完全に移植可能です。
実装は、C++ 標準によって提供される機能に対して独自の拡張機能を提供することができます。各コンパイラは、コンパイラ拡張機能の形式でこれを提供します。
したがって、
Pure C++ = 標準 C++ によって提供さ
れる機能 Visual C++ = 標準 C++ + MSVC コンパイラ拡張機能によって提供される機能。
GNU C++ = 標準 C++ + GNU コンパイラ拡張によって提供される機能。
「純粋な C++」などというものはありません。C++ かそうでないかのどちらかです。C++ 標準の一部ではない "WinMain" などの新しいキーワードを持つ、C++ の拡張機能を作成した企業がいくつかあります。おそらくそれはあなたが言及しているものです。
Stanley Lipman は、http : //msdn.microsoft.com/en-us/magazine/cc163852.aspxで Microsoft が C++/CLI ハイブリッド用に考案した用語について説明しています。
C++/CLI は、カンザスとオズのネイティブ プログラミングとマネージ プログラミングの統合を表しています。この反復では、混合モード (ネイティブおよび CTS タイプのソース レベルの混合と、ネイティブおよび CIL オブジェクト ファイルのバイナリの混合) を含む、ソース レベルおよびバイナリ要素の一種の別個だが同等のコミュニティを通じて行われました。ピュア モード (ネイティブ タイプと CTS タイプのソース レベルの混合、すべて CIL オブジェクト ファイルにコンパイルされる)、ネイティブ クラス (特別なラッパー クラスを介してのみ CTS タイプを保持できる)、および CTS クラス (ネイティブ タイプをポインターとしてのみ保持できる)。
したがって、Microsoft の世界での「純粋な」C++ は、独自の機能と ISO 標準の C++ 機能の特定のブレンドを表す用語です。
スタンリーの説明は、それを「ネイティブ」と区別しています。これは、この質問に対する他の既存の回答が「純粋」と表現しているものと一致します。もちろん、この単語の一般的な英語の使用法では、「純粋」は「ネイティブ」= ISO 規格になります。表向きは、Microsoft は露骨に誤解を招く用語を選んだため、"Pure C++" に関するチュートリアルやリファレンスに従っている人は、無意識のうちに独自の Microsoft 拡張機能を使用するように自分自身とそのコードをロックしている可能性があり、したがって、後でそれらを他のオペレーティング システムに移植しようとする試みに不満を感じている可能性があります。 .
Visual C++ や GNU C++ のような C++ という用語。これらのタイプの C++ のコンパイラはどうですか。
Visual C++ は、Microsoft の C++ および C++/CLI コンパイラのブランド名です。GNU は、GCC (C++ コンパイラを含む GNU コンパイラ コレクション) を含む無数のオープン ソース ソフトウェア製品を作成する組織です。