Microsoft Visual C++
Visual C++ (マイクロソフト ビジュアル シープラスプラス;マイクロソフト ヴィジュアル シープラスプラス)とはマイクロソフト
マイクロソフト | |
2022
/ 2023 | |
Microsoft Windows | |
プラットフォーム | x86, x64 (WOW64) |
| |
ライセンス |
Microsoft EULA(プロプライエタリ)※ |
www |
概要
Visual C++ 2005
"Visual"という
また、
Visual C++ 8.0 (2005)
Windows
Visual Studio 2015では、AndroidおよびiOS
言語
Visual C++のコンパイラは、C, C++, C++/CLI, C++/CXのソースコードを
C//
で
C++__cplusplus
の199711L
となっているが、コンパイルオプション/Zc:__cplusplus
を201402L
などに
主 なコンパイラの拡張
- インラインアセンブラ
- _asmや__asmキーワードによる
記述 。C++の標準 規格 で定 められているasm文 には対応 していない。x64/IA64では使用 できず、別途 アセンブラで記述 するか組 込 関数 で代替 する。 - コンパイラCOM
対応 - #importディレクティブ
及 び追加 のクラス・関数 など。 属性 - マイクロソフトインターフェイス
定義 言語 MIDLの属性 を直接 C++ソースコードに記述 する機能 。なお、マネージ拡張 C++、C++/CLI、およびC++/CXの属性 も同様 の構文 を使用 する。 - OpenMP
- Visual C++ 2005からOpen MP 2.0に
対応 している[17]。2010まではProfessional以上 のエディションでのみ使用 可能 となっていたが[18][19][20]、2012ではExpressを含 む全 エディションで使用 が可能 となった[21]。 - ネイティブC++でのC++/CLI
構文 の使用 - for each[22]
及 びoverride, abstract, sealed[23]。このうち、overrideはC++11のoverrideと同様 の構文 である。また、sealedはC++11のfinalキーワードに相当 する(sealed自体 はさらにもとを辿 ればマイクロソフト発 のプログラム言語 C#からの由来 である)。Visual C++ 2012では、sealed、finalのうちどちらでも使 うことができるが、標準 C++クラスにはfinalを、C++/CXのrefクラス(Windowsランタイムクラス)にはsealedを使 うことが推奨 されている[24]。 - Type Traits
対応 - __is_podキーワードなど[25]。
- .NET/WinRT
対応 後述 する。- その
他 - __declspec、
呼出 規約 の指定 、プロパティ構文 (__declspec(property))、構造 化 例外 処理 、#pragmaディレクティブ、SAL注釈 [26]など。
主 なライブラリの拡張
追加 のCRT関数 - MS-DOS
時代 に由来 するもの、POSIX互換 のもの、セキュリティ強化 のためのものなど - コンパイラ
組 込 関数 - MMX, SSE, SSE2やその
他 CPU命令 に対応 するもの - stdext
名前 空間 - hash_map, hash_setなど
- msclr
名前 空間 - C++マネージ
拡張 およびC++/CLI用 の追加 ライブラリ [27] - STL/CLR
- C++/CLIでのSTL
風 のライブラリ [28] 同時 実行 ランタイム (Concurrency Runtime)並列 パターンライブラリなどから構成 される、C++11ベースの並列 処理 ライブラリ [29]- C++ AMP
- GPUなどのアクセラレータを
使 った並列 処理 ライブラリ(言語 拡張 を含 む)[30]
なお、Visual C++ 2008にService Pack 1 (SP1) を
マネージ拡張 C++
マネージ
C++/CLI
C++/CLIは(
C++/CX
C++/CX (component extensions) は、Windowsストアアプリ (UWPアプリ) で
C++/WinRT
Visual Studio 2015 Update 3
その他 の機能 ・特徴
32ビット/64ビット
Visual C++ 2005
無料 版
Visual C++はエディションによってサポートする
- Visual C++ ToolKit 2003
- 2003
年 にプロフェッショナル版 と同等 の最適 化 機能 のあるコンパイラ(IDEではない)が無料 で提供 された。ただし、それ以前 から.NET Framework SDKにスタンダード版 相当 のコンパイラ(最適 化 機能 無 し)が付属 していた。なお、後述 するVisual C++ 2005 Express Editionの公開 に伴 って、現在 はこちらの公開 は終了 している。 - Visual C++ 2005 Express Edition
- 2005
年 12月からIDEが付 いて無料 で公開 され、2009年 3月31日 に配布 を終了 した。マイクロソフトがIDE製品 の正式 版 を無料 で公開 したのはeMbedded Visual Toolsに続 いてこれが2作 目 である。なお、MFCとATLは付属 していない。また、Windows APIを用 いたプログラムを作成 するには別途 Windows SDKをインストールする必要 がある。 - Visual C++ 2008 Express Edition
- 2007
年 12月18日 公開 。ATLやMFCが付属 しない点 はVisual C++ 2005 Express Editionと同 じであるが、Windows SDKが標準 で同 梱 されるようになり、Win32アプリケーションの開発 に必要 なWindows SDKを別途 用意 する必要 がなくなった。 - Microsoft Visual C++ Compiler for Python 2.7
- Windows
版 Pythonの拡張 モジュールのバイナリパッケージはPythonのバージョンとCランライムライブラリのバージョンに強 い依存 関係 があり、それに対応 するために配布 されている。VC++ 2008のコンパイラに相当 し、IDEは付属 しない。 - Visual C++ 2010 Express
- 2010
年 4月 28日 公開 。Visual C++ ソリューションおよびプロジェクトがXMLベースのMSBuildを使用 してビルドするようになり、他 のVisual Studio言語 で使用 されるビルドシステムと同 じになった。 - Visual Studio Express 2012 for Windows 8
- Visual Studio Express 2012 for Windows Desktop
- 2012
年 9月12日 公開 。今 バージョンではVisual C++単独 の製品 は無 くなりC#、VB.NETと共 にインストールされる。 - Visual Studio Express 2013 for Windows
- Visual Studio Express 2013 for Windows Desktop
- 2013
年 10月17日 公開 。 - Visual Studio Community 2013
- 2014
年 11月13日 公開 [47]。Expressエディションと比較 して利用 規約 は厳 しくなっているが、機能 的 にはProfessional版 と同等 。これまで有償 版 でしか使 えなかったMFC、ATLも付属 する。 - Visual Studio Express 2015 for Windows
- Visual Studio Express 2015 for Desktop
- Visual Studio Community 2015
- 2015
年 7月 20日 公開 [48]。 - Visual C++ Build Tools 2015
- VC++ 2015のコンパイラに
相当 する。IDEは付属 しないがATLとMFCが付属 している。 - Visual Studio Community 2017
- Visual C++ Build Tools 2017
- Visual Studio Express 2017 for Windows Desktop
- Build Tools for Visual Studio 2019
ほかにも、バージョン7.1までの Windows SDK (
Visual C++ Build Toolsは、ビルドサーバーや
製品 バージョンと内部 バージョン
Visual C++の_MSC_VER
および _MSC_FULL_VER
というプリプロセッサ シンボルが
_MSC_VER | リリース | ||||
---|---|---|---|---|---|
C Compiler 1.0 | - | - | 100 | 1983 |
Latice Cを |
C Compiler 2.0 | - | - | 200 | Large Model | |
C Compiler 3.0 | - | - | 300 | 1985 |
K&R |
C Compiler 4.0 | - | - | 400 | オプティマイズ | |
C Compiler 5.0 | - | - | 500 | 1987 |
ループオプティマイズ。Huge Model |
C Compiler 5.1 | - | - | OS/2 1.0 | ||
C Compiler 6.0 | - | - | 600 | 1989 |
Windowsプログラミングには |
C/C++ Compiler 7.0 | - | - | 700 | 1992 |
MFCが |
Visual C++ 1.0 | 1.0 | 1.0 | 800 | 1993 |
32ビット |
Visual C++ 1.5 | 1.5 | 1.5 | 800 | 1993 |
|
Visual C++ 1.51 | 1.51 | 1.51 | 800 | Visual C++ 2.0/4.0Pro | |
Visual C++ 1.52c | 1.52 | 1.52c | 800 | ||
Visual C++ 2.0 | 2.0 | 2.0 | 900 | 1995 |
Windows NT |
Visual C++ 2.1 | 2.1 | 2.1 | 900 | ||
Visual C++ 2.2 | 2.2 | 2.2 | 900 | ||
Visual C++ 4.0 | 4.0 | 4.0 | 1000 | 1996 |
Windows 95 |
Visual C++ 4.1 | 4.1 | 4.1 | 1010 | 1996 |
Win32sで |
Visual C++ 4.2 | 4.2 | 4.2 | 1020 | 1996 |
|
Visual C++ 5.0 | 5.0 | 5.0 | 1100 | 1997 |
|
Visual C++ 6.0 | 6.0 | 6.0 | 1200 | 1998 |
|
Visual C++.NET 2002 | 2002 | 7.0 | 1300 | 2002 |
マネージ |
Visual C++.NET 2003 | 2003 | 7.1 | 1310 | 2003 |
Windows 95で |
Visual C++ 2005 | 2005 | 8.0 | 1400 | 2005 |
Windows 98/Me/NT4で/analyze が |
Visual C++ 2008 | 2008 | 9.0 | 1500 | 2007 |
Windows 2000で IA-64で |
Visual C++ 2010 | 2010 | 10.0 | 1600 | 2010 |
C++0xへ |
Visual C++ 2012 | 2012 | 11.0 | 1700 | 2012 |
(C++0xでなく)C++11へ |
Visual C++ 2013 | 2013 | 12.0 | 1800 | 2013 |
C++11 |
Visual C++ 2015 | 2015 | 14.0 | 1900 | 2015 |
C++11/C++14 |
Visual C++ 2017 | 2017 | 14.1 | 1910[59] | 2017 |
C++11/C++14/C++17 |
Visual C++ 2019 | 2019 | 14.2 | 1920[59] | 2019 |
C++20 |
Visual C++ 2022 | 2022 | 14.3 | 1930 | 2021 |
C++20/ |
ランタイムライブラリの互換 性
Visual C++ (
VCのランタイムライブラリは、バージョンごとにCRTオブジェクトのメモリ
VC2015ではUniversal CRTが
脚注
- ^ Visual C++ What's New 2003 through 2015 | Microsoft Docs
- ^ Microsoft、「Visual Studio 2017 15.9」でArm64アプリ
開発 を正式 サポート:64bit Armアプリの作成 が容易 に - @IT - ^ ANSI Conformance | Microsoft Docs
- ^ C99 library support in Visual Studio 2013 | C++ Team Blog
- ^ Microsoft C++ language and standard library conformance table | Microsoft Docs
- ^ C11 and C17 Standard Support Arriving in MSVC | C++ Team Blog
- ^ “
標準 C++ プログラムの作成 (C++)”. MSDN ライブラリ. マイクロソフト (2007年 11月). 2009年 12月1日 閲覧 。 - ^ Visual C++ 2010 の
新 機能 - ^ C++11 Features in Visual C++ 11
- ^ Support For C++11 Features (Modern C++)
- ^ C++11/14/17 Features In VS 2015 RTM - Visual C++ Team Blog - Site Home - MSDN Blogs
- ^ Visual Studio 2017 リリース ノート
- ^ Visual C++ Language Conformance | Microsoft Docs
- ^ Announcing: MSVC Conforms to the C++ Standard | Visual C++ Team Blog
- ^ コンパイラの
実装 状 況 - cpprefjp C++日本語 リファレンス - ^ MSVC now correctly reports __cplusplus | Visual C++ Team Blog
- ^ Visual C++ の OpenMP
- ^ Visual C++ Editions (2005)
- ^ Visual C++ Editions (2008)
- ^ Visual C++ Editions (2010)
- ^ Visual C++ Tools and Templates in Visual Studio Editions
- ^ How to: Iterate Over STL Collection with for each
- ^ How to: Declare Override Specifiers in Native Compilations
- ^ sealed (C++ Component Extensions)
- ^ Compiler Support for Type Traits
- ^ SAL
注釈 - ^ msclr
名前 空間 - ^ STL/CLR ライブラリ リファレンス
- ^
同時 実行 ランタイム - ^ C++ AMP (C++ Accelerated Massive Parallelism)
- ^ CRTのセキュリティ
強化 - ^ Safe Libraries: Standard C++ Library
- ^ Checked Iterators
- ^ Visual C++ 2008
用 の MFC Feature Pack - ^ Visual Studio 2010 SP1
用 の MFC の追加 - ^ C++ マネージ
拡張 プログラミング (C++) - ^ ネイティブ C++ アプリケーションの
再 頒布 - ^
混在 (ネイティブおよびマネージ) アセンブリ - ^ /clr (
共通 言語 ランタイムのコンパイル) - ^ /clr (
共通 言語 ランタイムのコンパイル) (C++) - ^ C++ - C++/WinRT の
紹介 - ^ Introduction to C++/WinRT - Windows UWP applications | Microsoft Docs
- ^ Long Double
型 - ^ a b /arch (x86) | Microsoft Docs
- ^ Microsoft、“Professional”
相当 の無償 版 「Visual Studio Community 2013」を公開 -窓 の杜 - ^ Visual Studio 2015 の
製品 ラインアップを発表 - Visual Studio日本 チーム ブログ - Site Home - MSDN Blogs - ^ ニュース - MSが「Visual Studio Community」を
発表 、無償 でAndroid/iOSアプリも開発 可能 :ITpro - ^ Microsoft、
統合 開発 環境 「Visual Studio 2015」を正式 公開 -窓 の杜 - ^
定義 済 みマクロ - ^ Visual C++ 2003 ~ 2015 の
新 機能 | Microsoft Docs - ^ “Application statically linked with Visual C++ 2010 C/C++ runtime fails to launch with error ‘The procedure entry point EncodePointer could not be located in the dynamic link library KERNEL32.dll’.” (
英語 ). サポート技術 情報 . マイクロソフト (2009年 10月 29日 ). 2009年 12月14日 閲覧 。 - ^ “Breaking Changes” (
英語 ). 2009年 12月26日 閲覧 。 - ^ “Windows Server 2008 R2 to Phase Out Itanium” (
英語 ). 2010年 5月 11日 閲覧 。 - ^ コンパイラの
判断 によって32bit版 アプリケーションでも SSE2命令 が使 われる可能 性 がある。 - ^ Breaking Changes in Visual C++ | Microsoft Docs
- ^
浮動 小数点 の移行 に関 する問題 | Microsoft Docs - ^ Unicode とマルチバイト
文字 セット (MBCS: Multibyte Character Set) のサポート - ^ Visual Studio 2015 における Visual C++ の
新 機能 - ^ a b Visual Studioのアップデートに
伴 い、_MSC_VER
の最下位 の桁 も更新 されるようになっている。 - ^ Visual Studio 2017 (バージョン 15.0) リリース ノート
- ^ Visual Studio 2019 プレビューでの
非 推奨 の C++機能 | Microsoft Docs - ^ SIMD Extension to C++ OpenMP in Visual Studio | C++ Team Blog
- ^ /openmp (Enable OpenMP Support) | Microsoft Docs
- ^ Visual Studio 2019 リリース ノート | Microsoft Docs
- ^ New, experimental code analysis features in Visual Studio 2017 15.8 Preview 3 | C++ Team Blog
- ^ In-editor code analysis in Visual Studio 2019 Preview 2 | C++ Team Blog
- ^ https://learn.microsoft.com/ja-jp/cpp/overview/what-s-new-for-visual-cpp-in-visual-studio?view=msvc-170]
- ^ /MD, -MT, -LD (Use Run-Time Library) | Microsoft Docs
- ^ Potential Errors Passing CRT Objects Across DLL Boundaries | Microsoft Docs
- ^ C++ Binary Compatibility between Visual Studio 2015 and Visual Studio 2019 | Microsoft Docs
- ^ Visual C++ change history 2003 - 2015 | Microsoft Docs
- ^ CRT ライブラリの
機能 | Microsoft Docs - ^ Universal CRT へのコードのアップグレード | Microsoft Docs
- ^ Visual C++ 2015
以降 のバージョンの再 頒布 可能 パッケージにおけるインストールの前提 条件 – Visual Studio サポート チーム blog - ^ Visual C++ 2015 アプリケーションでの CRT ローカル
配置 について – Visual Studio サポート チーム blog - ^ Introducing the Universal CRT | C++ Team Blog
- ^ Universal CRT deployment | Microsoft Docs
- ^
最新 のサポートされる Visual C++ のダウンロード - ^ Windows での
汎用 の C ランタイムの更新 プログラム