[c基本機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
option コンパイラオプション | | | | -TP -EHsc -GR -Zc:forScope | 左に同じ | 左に同じ | -TP -EHsc -GR | -cpp -Aa -Ab -Ae -Ar | -cc++ | -P |
c/plain_char_is_signed.c char の符号 | signed | signed | signed | signed | signed | signed | signed | signed | unsigned | signed |
c/char_bit_size.c char のビット数 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
c/sizeof_char.c char のバイト数 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
c/sizeof_short.c short のバイト数 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
c/sizeof_int.c int のバイト数 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
c/sizeof_long.c long のバイト数 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
c/sizeof_ptr.c ポインタのバイト数 | 8 | 4 | 4 | 8 | 4 | 4 | 4 | 4 | 4 | 4 |
c/sizeof_float.c float のバイト数 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
c/sizeof_double.c double のバイト数 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
c/sizeof_longdouble.c long double のバイト数 | 16 | 12 | 12 | 8 | 8 | 8 | 8 | 10 | 8 | 10 |
c/short_int.c short int と記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/unsigned_short_int.c unsigned short int と記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/unsigned_int.c unsigned int と記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/long_int.c long int と記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/unsigned_long_int.c unsigned long int と記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/cmp_int_uint.c int値とunsigned値の比較(int→unsigned整数昇格) | pass | pass | pass | pass | pass | pass | pass | pass | pass | fail[e] |
c/m1div4294967295.c 整数昇格の都合で -1/4294967295 の結果が 0(C99以降) か 1(以前)か | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
c/macro_ifdef.c #ifdef が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/macro_define.c 引数有の #define マクロが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/macro_file_line.c __FILE__ __LINE__ __DATE__ __TIME__ があるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/bitfield.c ビットフィールドが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/local_var_init.c ローカル変数定義で初期値が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/local_block_var.c ブロック内でローカル変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/local_static_var.c 関数ローカルでstatic変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/local_block_static_var.c ブロック内でstatic変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/union.c union が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/struct1.c 構造体が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/struct2.c 同名のメンバー名が他のstructで別の型・相対位置でも使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c/number_of_int32_without_l.c サフィックス無で32ビット符号付整数リテラルが使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
c/number_of_uint32_without_ul.c サフィックス無で32ビット符号無16進整数リテラルが使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
c/number_of_int64_without_ll.c サフィックス無で64ビット符号付整数リテラルが使えるか | enable | enable | enable | enable | enable | enable | enable | no support | enable | enable |
c/number_of_uint64_without_ull.c サフィックス無で64ビット符号無16進整数リテラルが使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
[old-c特有] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
kr/extern_in_func.c 関数中のextern 宣言が関数外に影響するか | no support | no support | no support | no support | no support | no support | no support | no support | enable | no support |
kr/oct0809.c 8進数リテラルで 8・9が使えてしまうか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
[c90 で確定した機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c90/sizeof_signed_char.c signed char のバイト数 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
c90/sizeof_unsigned_char.c unsigned char のバイト数 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
c90/sizeof_wide_ch.c L'C' のバイト数 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
c90/sizeof_is_unsigned.c sizeofした結果の値の型がunsignedか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/number_of_uint.c 後ろに U を付けた整数リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/number_of_long.c 後ろに L を付けた整数リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/number_of_ulong.c 後ろに UL を付けた整数リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/number_of_flt.c 後ろに F を付けたfloatリテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/number_of_ldbl.c 後ろに L を付けた long double リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_bsl_join.c #行の末に \ を置いて次行を連結できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_if.c #if が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_elif.c #elif が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_defined.c #ifで defined が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_pragma.c #pragma が使えるか(未対応の指定でエラーにならないか) | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_to_str.c マクロで #による"文字列"リテラル化ができるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_cat.c マクロで ## による連結が行えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/macro_tok_cat.c トークン連結マクロが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/comment_to_spc.c /*コメント*/ が空白扱いになっているか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/str_join.c 隣接する "文字列リテラル" が連結するか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/entry.c かって予約語だったentryがユーザ定義の名前として使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/enum.c enum が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/func_arg_struct.c 関数引数で構造体の値渡を使えるか. | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/func_arg_ppp.c 可変引数指定 ... が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/func_ptr_call.c 関数へのポインタを用いて単純な関数呼出が記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/plus.c 単項 + が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/switch_long.c switch の分岐値として long 型が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/struct_ini_comma.c struct 型の初期値で余分にカンマがあっても良いか. | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/struct_copy.c 構造体変数同士の代入が行えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/struct_local_ini.c ローカル構造体変数の定義で初期値を記述できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/struct_of_funcResult.c 構造体値を関数の帰値にできるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/union_ini.c 共用体の初期化が行えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/union_local_ini.c 共用体のローカル変数の初期化が行えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/const_var.c const 変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/volatile_var.c volatile変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/void_arg.c 引数無関数宣言で引数に void 指定できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/const_volatile_var.c const volatile 変数できるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/wide_char.c L'A'のようなワイド文字リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/wide_cstr.c L"str"のようなワイド文字列リテラルが使えるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
c90/wide_cstr_join.c 隣接ワイド文字列リテラル同士の連結が行われるか | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass |
[c99 で追加された機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c99 option c99 有効化オプション | -std=c++11 | 左に同じ | 左に同じ | | | | | | -za99 | |
c99/sizeof_llong.c long long のバイト数 | 8 | 8 | 8 | 8 | 8 | 8 | no support | 8 | no support | no support |
c99/sizeof_ullong.c unsigned long long のバイト数 | 8 | 8 | 8 | 8 | 8 | 8 | no support | 8 | no support | no support |
c99/number_of_llong.c 後ろに LL のついた整数リテラルが使えるか | pass | pass | pass | pass | pass | pass | fail[c] | pass | fail[c] | fail[c] |
c99/number_of_ullong.c 後ろに ULL のついた整数リテラルが使えるか | pass | pass | pass | pass | pass | pass | fail[c] | pass | fail[c] | fail[c] |
c99/switch_llong.c switch で long long 値が使えるか | pass | pass | fail[c] | pass | pass | pass | fail[c] | fail[e] | fail[c] | fail[c] |
c99/enum_ini_comma.c enum 定義で最後に余分なカンマを置けるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c99/mod_minus.c 負値のある%計算がc99の仕様になっているか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c99/m1div4294967295.c 整数昇格の都合で -1/4294967295 の結果が 0(C99以降) か 1(以前)か | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | no support | 1 |
c99/struct_memb_array_0.c 構造体メンバでサイズ 0 の配列を定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | fail[c] |
c99/line_comment.c 行コメント//が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c99/line_comment_bsl_join.c 行コメント//の末に\があったとき次行が連結されるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c99/macro_empty_arg1.c 1引数マクロで引数が空の場合に対応しているか | enable | enable | enable | no support | no support | no support | no support | enable | no support | no support |
c99/macro_empty_arg2.c 2引数マクロで引数が空の場合に対応しているか | pass | pass | pass | pass | pass | pass | fail[e] | pass | fail[c] | pass |
c99/macro_va.c 可変引数マクロを使えるか | pass | pass | pass | pass | pass | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c99/macro_va_2.c 可変引数マクロから作った引数有マクロを使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c99/__func__.c __func__ が使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c99/_Pragma.c _Pragma が使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/inline_func.c 関数の inline 指定が使えるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | fail[c] |
c99/wide_cstr_join99.c ワイド文字列リテラルとそうでない文字列リテラルの連結が行えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | pass |
c99/hexfloat.c 16進数浮動小数点リテラルが使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c99/compound_literal.c (型名){...} による型値リテラルが使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/local_def_var.c (c++のように)文の後でもローカル変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | fail[c] |
c99/for_def_var.c for の第一項でローカル変数定義できるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | fail[c] |
c99/unicode_esc_char.c \u???? を文字列リテラル中に用いることができるか | pass | pass | pass | pass | pass | pass | fail[e] | pass | fail[c] | fail[e] |
c99/var_name_esc_unicode.c \u???? を用いて変数定義できるか | fail[c] | fail[c] | fail[c] | pass | pass | pass | fail[c] | pass | fail[c] | fail[c] |
[c11で追加された機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c11 option c11有効化オプション | -std=c++11 | 左に同じ | 左に同じ | | | | | | -za99 | |
c11/dup_typedef.c 同じtypedef定義を複数回行えるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c11/anonymous_struct_in_union.c union 定義中に 無名構造体を使えるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c11/anonymous_union_in_struct.c struct 定義中に 無名共用体を使えるか | pass | pass | pass | pass | pass | pass | pass | pass | fail[c] | pass |
c11/u8str.c u8"文字列" を使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c11/u16str.c u"文字列" を使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
c11/u32str.c U"文字列" を使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | pass | fail[c] | fail[c] |
[日本語文字関係] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
SJIS option SJIS有効化オプション | -finput-charset=cp932 -fexec-charset=cp932 | 左に同じ | | | | | | -j0 | -zk1 | |
c90/wide_char_sjis.c SJISソースで L'字' が使えるか | pass | pass | fail[c] | pass | pass | pass | pass | fail[e] | pass | pass |
c90/wide_char_utf8.c UTF8ソースで L'字' が使えるか | pass | pass | pass | fail[e] | fail[e] | fail[e] | fail[e] | fail[c] | fail[c] | pass |
c90/wide_cstr_sjis.c SJISソースで L'字' L"文字列" が使えるか | pass | pass | fail[c] | pass | pass | pass | pass | pass | fail[e] | pass |
c90/wide_cstr_utf8.c UTF8ソースで L'字' L"文字列" が使えるか | pass | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/line_comment_sjis.c SJISソースで 行末に0x5c(\)を含む文字を使って無問題か | pass | pass | fail[e] | pass | pass | pass | pass | pass | fail[c] | pass |
c99/var_name_utf8.c UTF8ソースで 0x7fより大きい文字コードを名前に使えるか | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/var_name_sjis.c SJISソースで 0x7fより大きい文字コードを名前に使えるか | fail[c] | fail[c] | fail[c] | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/macro_name_utf8.c UTF8ソースで 0x7fより大きい文字コードをマクロ名に使えるか | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
c99/macro_name_sjis.c SJISソースで 0x7fより大きい文字コードをマクロ名に使えるか | fail[c] | fail[c] | fail[c] | pass | pass | fail[c] | fail[c] | fail[c] | fail[c] | fail[c] |
[c++仕様準拠] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c++/void_main_return_0.c void main で暗黙に 0を返すか | no support | no support | no support | enable | enable | enable | disable[e] | enable | enable | disable[e] |
[VC/GCC 拡張共通] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
vc/sizeof_m128.c __m128 のバイト数 | 16 | no support | 16 | 16 | 16 | 16 | no support | no support | no support | no support |
vc/__restrict.c __restrict が使えるか | enable | enable | enable | enable | enable | no support | no support | enable | no support | no support |
gcc/__FUNCTION__.c __FUNCTION__ が使えるか | enable | enable | enable | enable | enable | enable | no support | enable | disable[e] | no support |
vc/__COUNTER__.c __COUNTER__ マクロが使えるか | enable | enable | enable | enable | enable | enable | no support | no support | no support | no support |
vc/pragma_once.c #pragma once が使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | disable[e] |
[VC の拡張機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
vc/sizeof_int64.c __int64 のバイト数 | no support | no support | no support | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
vc/sizeof_unsigned_int64.c unsigned __int64 のバイト数 | no support | no support | no support | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
vc/__cdecl.c __cdecl が使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/__stdcall.c __stdcall が使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/__fastcall.c __fastcall が使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/__forceinline.c __forceinline が使えるか | no support | no support | enable | enable | enable | enable | enable | no support | no support | no support |
vc/declspec_noinline.c __declspec(noinline) が使えるか | enable | enable | enable | enable | enable | enable | no support | no support | no support | no support |
vc/declspec_selectany.c __declspec(selectany) が使えるか | enable | enable | no support | enable | enable | enable | enable | no support | no support | enable |
vc/declspec_align.c __declspec(align(N)) が使えるか | enable | enable | enable | enable | enable | enable | no support | no support | no support | no support |
vc/declspec_noreturn.c __declspec(noreturn) が使えるか | enable | enable | enable | enable | enable | enable | enable | no support | no support | enable |
vc/declspec_thread.c declspec(thread) が使えるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/declspec_dllimport.c __declspec(dllimport) を使えるか(コンパイルのみ) | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/declspec_dllexport.c __declspec(dllexport) を使えるか(コンパイルのみ) | enable | enable | enable | enable | enable | enable | enable | enable | enable | enable |
vc/include_intrin.c #include <intrin.h> できるか | enable | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_InterLockedIncrement.c _InterLockedIncrement/_InterLockedDecrementが使えるか | enable | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_InterLockedExchange.c _InterLockedExchange が使えるか | enable | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_ReadWriteBarrier.c _ReadWriteBarrier が使えるか | no support | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_ByteSwap.c _ByteSwap_???? が使えるか | enable | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_BitScan.c _BitScanForward/_BitScanReverseが使えるか | disable[e] | no support | no support | enable | enable | no support | no support | no support | no support | no support |
vc/_BitScan64.c _BitScanForward64/_BitScanReverse64が使えるか | disable[e] | no support | no support | enable | no support | no support | no support | no support | no support | no support |
vc/__FUNCSIG__.c __FUNCSIG__ (関数定義文字列)マクロが使えるか | no support | no support | no support | enable | enable | enable | no support | no support | no support | no support |
vc/__FUNCDNAME__.c __FUNCDNAME__ (マングル名文字列)マクロが使えるか | no support | no support | no support | enable | enable | enable | no support | no support | no support | no support |
vc/__pragma.c __pragma が使えるか | no support | no support | no support | enable | enable | enable | no support | no support | no support | no support |
[gcc の拡張機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
gcc/sizeof_int128.c __int128 のバイト数 | 16 | no support | 16 | no support | no support | no support | no support | no support | no support | no support |
gcc/switch_i128.c unsigned __int128 変数で switch が行えるか | enable | no support | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/binary_literal.c 2進数リテラル 0b???? が使えるか | enable | enable | enable | no support | no support | no support | no support | enable | no support | no support |
gcc/attribute_alias.c __attribute__( (alias("name")) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_always_inline.c __attribute__( (always_inline) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_noinline.c __attribute__( (noinline) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_selectany.c __attribute__( (selectany) ) が使えるか | enable | enable | no support | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_weak.c __attribute__( (weak) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_aligned.c __attribute__( (aligned(N)) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/attribute_noreturn.c __attribute__( (noreturn) ) が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__thread_var.c __thread 変数定義ができるか | enable | enable | no support | no support | no support | no support | no support | no support | no support | no support |
gcc/__sync_add_and_fetch.c __sync_add_and_fetch が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__sync_val_compare_and_swap.c __sync_val_compare_and_swap が使えるか | enable | no support | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__builtin_bswap16.c __builtin_bswap16 が使えるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__builtin_bswap3264.c __builtin_bswap32 __builtin_bswap64 が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__builtin_clz.c __builtin_clz/__builtin_tlz/__builtin_popcount が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__builtin_clzll.c __builtin_clzll/__builtin_tlzll/__builtin_popcountll が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/__PRETTY_FUNCTION__.c __PRETTY_FUNCTION__ が使えるか | enable | enable | enable | no support | no support | no support | no support | enable | no support | no support |
gcc/include_next.c #include_next が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |
[= C++非互換 機能 =] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c/sizeof_ch.c 'C' のバイト数 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 4 |
kr/old_style_func.c 旧仕様の関数定義ができるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
kr/ref_register.c register 変数のアドレスを取れるか | enable | enable | enable | enable | enable | enable | enable | enable | enable | no support |
c/default_type.c 型省略でint定義ができるか | no support | no support | no support | no support | no support | enable | enable | enable | no support | enable |
c/multi_def_var.c 同一グローバル変数を複数回定義できるか | no support | no support | no support | no support | no support | no support | no support | enable | no support | enable |
c/auto.c C言語としての auto 指定ができるか | enable | enable | enable | no support | enable | enable | enable | enable | enable | enable |
c/struct3.c struct S{} と typedef struct{} S が別物として定義できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
c/struct4.c 関数内の struct a 定義がグローバル変数 a を隠さないか | fail[e] | fail[e] | fail[e] | fail[e] | fail[e] | fail[e] | fail[e] | fail[e] | fail[e] | enable |
c/struct_struct.c 構造体Aの中で定義された構造体Bを外部で直接利用できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
c/recersive_main.c main()を再帰呼び出しできるか | enable | enable | enable | enable | enable | enable | enable | enable | no support | enable |
c/sizeof_comma_op.c char a[9]; sizeof( (char)0,a ) が 左辺値(9)か 右辺値( sizeof(char*) )か | lvalue | lvalue | lvalue | lvalue | rvalue | rvalue | rvalue | rvalue | lvalue | rvalue |
[c90 の機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c90/void_ptr.c void* から他の型のポインタへキャスト無しで代入できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
c90/const_var_unini.c 初期値指定無しの const 変数を使えるか | no support | no support | no support | no support | no support | no support | no support | enable | no support | enable |
c90/char_array_no_null.c char a[N] を '\0'無で丁度長さNの文字列リテラルで初期化できるか | no support | no support | no support | no support | no support | no support | no support | enable | no support | enable |
c90/ref_array.c 配列名のみに対して & をつけてアドレスが取得できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
c90/enum_var_set.c enum 変数に直接整数値を設定できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
c90/struct_def_func_ret.c 関数定義の返型で構造体定義できるか | no support | no support | no support | enable | enable | enable | enable | enable | no support | enable |
c90/struct_def_func_arg.c 関数定義の引数で構造体定義できるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | enable |
[c99 の機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c99/__STDC_VERSION__.c __STDC_VERSION__ が定義されているか。あればその値 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c99/__STDC_ISO_10646__.c __STDC_ISO_10646__ が定義されているか。あればその値 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c99/__STDC_IEC_559__.c __STDC_IEC_559__ が定義されているか。 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c99/__STDC_IEC_559_COMPLEX__.c __STDC_IEC_559_COMPLEX__ が定義されているか。 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c99/__STDC_MB_MIGHT_NEQ_WC__.c __STDC_MB_MIGHT_NEQ_WC__ が定義されているか。 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c99/sizeof_Bool.c _Bool のバイト数 | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c99/sizeof_float_Complex.c float _Complex のバイト数 | 8 | 8 | 8 | no support | no support | no support | no support | 8 | no support | no support |
c99/sizeof_double_Complex.c double _Complex のバイト数 | 16 | 16 | 16 | no support | no support | no support | no support | 16 | no support | no support |
c99/sizeof_long_double_Complex.c long double _Complex のバイト数 | 32 | 24 | 24 | no support | no support | no support | no support | 20 | no support | no support |
c99/sizeof_float_Imaginary.c float _Imaginary のバイト数 | no support | no support | no support | no support | no support | no support | no support | 4 | no support | no support |
c99/sizeof_double_Imaginary.c double _Imaginary のバイト数 | no support | no support | no support | no support | no support | no support | no support | 8 | no support | no support |
c99/sizeof_long_double_Imaginary.c long double _Imaginary のバイト数 | no support | no support | no support | no support | no support | no support | no support | 10 | no support | no support |
c99/designated_ini.c 構造体の初期化でメンバー名による初期化が行えるか | no support | no support | enable | no support | no support | no support | no support | enable | no support | no support |
c99/array_ini.c 配列の初期化で添字番号による部分初期化が行えるか | no support | no support | enable | no support | no support | no support | no support | enable | no support | no support |
c99/compound_literal_arg.c (型名){...} へのポインタを関数引数でつかえるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c99/variable_length_array.c 可変長(実行時サイズ指定)(ローカル)配列変数が使えるか | enable | enable | enable | no support | no support | no support | no support | enable | no support | no support |
c99/variable_length_array_sizeof.c 可変長配列のsizeofが使えるか | enable | enable | enable | no support | no support | no support | no support | enable | no support | no support |
c99/variable_length_array_typedef.c 可変長配列のtypedefが使えるか | enable | enable | enable | no support | no support | no support | no support | fail[e] | no support | no support |
c99/variable_length_array_funcarg.c 関数引数で可変長配列が使えるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c99/variable_length_array_funcarg2.c 関数引数で可変長配列が使えるか(サイズ後置) | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c99/restrict_ptr.c restrict ポインタが使えるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c99/array_type_qualifiers.c 関数引数の配列の定義で[cv修飾]が使えるか | no support | no support | no support | no support | no support | no support | no support | enable | no support | no support |
c99/c99namescope.c {}無if本文で暗黙のブロック・スコープが有効か | no support | no support | no support | no support | no support | no support | no support | enable | no support | fail[e] |
c99/c99namescope2.c if条件式中の暗黙のブロック・スコープが有効か | no support | no support | no support | no support | no support | no support | no support | fail[e] | no support | fail[e] |
[c11 の機能] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
c11/__STDC_VERSION__.c c11対応ならば __STDC_VERSION__ の値 | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_NO_ATOMICS__.c __STDC_NO_ATOMICS__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_NO_COMPLEX__.c __STDC_NO_COMPLEX__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_NO_THREADS__.c __STDC_NO_THREADS__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_NO_VLA__.c __STDC_NO_VLA__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_ANALYZABLE__.c __STDC_ANALYZABLE__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_UTF_16__.c __STDC_UTF_16__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_UTF_32__.c __STDC_UTF_32__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/__STDC_LIB_EXT1__.c __STDC_LIB_EXT1__ マクロが定義されているか | no support | no support | no support | no support | no support | no support | no support | no support | fail[c] | no support |
c11/_Static_assert.c _Static_assert が使えるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
c11/_Noreturn.c _Noreturn が使えるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c11/_Alignas.c _Alignas(a) が使えるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
c11/_Alignof.c _Alignof(t) が使えるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
c11/_Atomic.c _Atomic が使えるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c11/_Thread_local.c _Thread_local が使えるか | no support | no support | no support | no support | no support | no support | no support | no support | no support | no support |
c11/_Generic.c _Generic が使えるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
[gcc 拡張] | mingw64 g++ 4.7.1 tdm | mingw g++ 4.7.1 tdm | clang++ 3.2 +mingw | vc++11 x64 | vc++9 | vc++7.1 | vc++6 | dmc++ v.8.56 | Open Watcom C++ v.1.9 | Borland C++ v5.5.1 |
gcc/_Complex_number_i.c 1.0+2.0i のような Complex表記ができるか | no support | no support | enable | no support | no support | no support | no support | no support | no support | no support |
gcc/_Complex_real_imag.c __real__ __imag__ が使えるか | enable | enable | enable | no support | no support | no support | no support | no support | no support | no support |