フリー (Win32) C++コンパイラ適合表
フリー (Win32) C++ コンパイラ適合表
C++
言語仕様
/テストケース
Microsoft
Visual C++
7.1
Microsoft
Visual C++
8.0
Borland
C++ Compiler
5.5.1
Borland
C++ Compiler
5.6.4
Cygwin
C++ Compier
3.4.4
MinGW
C++ Compier
3.4.4
Digital Mars
C++
8.5.4
Open
Watcom C++
1.3
代替字句
×
×
×
○
○
○
○
×
代替表現
×
×
×
×
○
○
○
○
新スタイルのキャスト
○
○
○
○
○
○
○
○
bool 型
○
○
○
○
○
○
○
○
bool 条件
○
○
○
○
○
○
○
○
mutable キーワード
○
○
○
○
○
○
○
○
explicit キーワード
○
○
○
○
○
○
○
○
typename キーワード
○
○
○
○
○
○
○
×
共変的な返却値型
○
○
○
○
○
○
○
○
矢印演算子の返却値型
○
○
×
×
○
○
○
○
列挙型による多重定義
○
○
○
○
○
○
○
○
入れ子クラスの先行宣言
○
○
○
○
○
○
○
×
異なる名前空間におけるクラスの随伴宣言
○
○
○
○
○
○
○
○
クラス名の導入
○
○
×
×
○
○
○
○
随伴名の導入
○
○
×
×
×
×
×
×
static const 汎整数メンバ
○
○
○
○
○
○
○
○
const オブジェクトの delete
○
○
○
○
○
○
○
○
void 型の返却
×
×
○
○
○
○
○
×
新しい有効範囲のルール
○
○
○
○
○
○
○
○
if 文の条件
○
○
○
○
○
○
○
×
switch 文の条件
×
○
○
○
○
○
○
×
whle 文の条件
○
○
×
×
○
○
○
×
for 文の条件
×
×
×
×
○
○
○
×
省略時引数の有効範囲
○
○
×
×
○
○
×
×
名前空間内列挙型
○
○
○
○
○
○
○
○
名前空間内テンプレート
○
○
○
○
○
○
○
○
名前空間内テンプレート関数
○
○
○
○
○
○
○
○
名前空間内テンプレートの using
○
○
○
○
○
○
○
○
非型テンプレート引数
○
○
○
○
○
○
○
○
明示的テンプレート具現化
○
○
×
×
○
○
○
○
省略時テンプレート引数
○
○
○
○
○
○
○
○
テンプレート仮引数に依存する省略時テンプレート実引数
○
○
○
○
○
○
○
○
テンプレート・テンプレート引数
○
○
○
○
○
○
○
×
テンプレート関数の明示的修飾
○
○
○
○
○
○
○
×
新しいテンプレート特殊化の構文
○
○
○
○
○
○
○
×
テンプレート部分特殊化
○
○
○
○
○
○
○
×
クラステンプレート部分特殊化の部分順序
○
○
○
○
○
○
○
×
メンバテンプレートクラス
○
○
○
○
○
○
○
×
メンバテンプレート関数
○
○
○
○
○
○
○
×
new からの std::bad_alloc 送出
○
○
○
○
○
○
×
×
typeid からの std::bad_typeid 送出
○
○
○
○
○
○
×
×
例外を送出するデストラクタ
○
○
○
○
○
○
○
×
実引数依存の名前検索
○
○
○
○
○
○
○
○
二段階の名前検索
×
×
×
×
○
○
○
×
処理系の最適化性能
Microsoft
Visual C++
7.1
Microsoft
Visual C++
8.0
Borland
C++ Compiler
5.5.1
Borland
C++ Compiler
5.6.4
Cygwin
C++ Compier
3.4.4
MinGW
C++ Compier
3.4.4
Digital Mars
C++
8.5.4
Open
Watcom C++
1.3
空の基底クラスの最適化
○
○
×
×
○
○
○
○
返却値の最適化
×
○
×
×
○
○
○
○
C++0X 拡張
Microsoft
Visual C++
7.1
Microsoft
Visual C++
8.0
Borland
C++ Compiler
5.5.1
Borland
C++ Compiler
5.6.4
Cygwin
C++ Compier
3.4.4
MinGW
C++ Compier
3.4.4
Digital Mars
C++
8.5.4
Open
Watcom C++
1.3
静的アサーション
×
×
×
×
×
×
×
×
右山カッコ
×
○
×
×
×
×
×
×
テンプレート typedef
×
×
×
×
×
×
×
×
C99 拡張 (C++ コンパイラ)
Microsoft
Visual C++
7.1
Microsoft
Visual C++
8.0
Borland
C++ Compiler
5.5.1
Borland
C++ Compiler
5.6.4
Cygwin
C++ Compier
3.4.4
MinGW
C++ Compier
3.4.4
Digital Mars
C++
8.5.4
Open
Watcom C++
1.3
予約済み __func__ 識別子
×
×
×
×
○
○
○
○
16 進浮動小数点リテラル
×
×
×
×
○
○
○
×
long long 型
○
○
×
○
○
○
○
○
restrict キーワード
×
×
×
×
×
×
×
×
可変長配列
×
×
×
×
○
○
○
×
sizeof の動的評価
×
×
×
×
○
○
○
×
空のマクロ実引数
○
○
○
○
○
○
○
○
列挙宣言における末尾のコンマ
○
○
○
○
○
○
○
○
開放的な配列メンバ
○
○
○
○
○
○
○
○
複合リテラル
×
×
×
×
○
○
×
×
このページは
クリエイティブ・コモンズ 帰属 - 非営利 - 同一条件許諾
のもとで公開されています。
このページは
Christof Meerwald@freec++.prog
を参考に作成しました。
サイト名: takagi.in
http://takagi.in
この記事のURL:
http://takagi.in/modules/devenv1/index.php?id=1