主なコンパイラの拡張
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/13 22:03 UTC 版)
「Microsoft Visual C++」の記事における「主なコンパイラの拡張」の解説
インラインアセンブラ _asmや__asmキーワードによる記述。C++の標準規格で定められているasm文には対応していない。x64/IA64では使用できず、別途アセンブラで記述するか組込関数で代替する。 コンパイラCOM対応 #importディレクティブ及び追加のクラス・関数など。 属性 マイクロソフトインターフェイス定義言語MIDLの属性を直接C++ソースコードに記述する機能。なお、マネージ拡張C++、C++/CLI、およびC++/CXの属性も同様の構文を使用する。 OpenMP Visual C++ 2005からOpen MP 2.0に対応している。2010まではProfessional以上のエディションでのみ使用可能となっていたが、2012ではExpressを含む全エディションで使用が可能となった。 ネイティブC++でのC++/CLI構文の使用 for each及びoverride, abstract, sealed。このうち、overrideはC++11のoverrideと同様の構文である。また、sealedはC++11のfinalキーワードに相当する(sealed自体はさらにもとを辿ればマイクロソフト発のプログラム言語C#からの由来である)。Visual C++ 2012では、sealed、finalのうちどちらでも使うことができるが、標準C++クラスにはfinalを、C++/CXのrefクラス(Windowsランタイムクラス)にはsealedを使うことが推奨されている。 Type Traits対応 __is_podキーワードなど。 .NET/WinRT対応 後述する。 その他 __declspec、呼出規約の指定、プロパティ構文(__declspec(property))、構造化例外処理、#pragmaディレクティブ、SAL注釈など。
※この「主なコンパイラの拡張」の解説は、「Microsoft Visual C++」の解説の一部です。
「主なコンパイラの拡張」を含む「Microsoft Visual C++」の記事については、「Microsoft Visual C++」の概要を参照ください。
- 主なコンパイラの拡張のページへのリンク