template宣言におけるtypenameの扱いが曖昧である。template<typename int>はエラーになるべきであるが、コンパイル時にエラー・警告が出ない。また、template宣言中であれば以下の様な構文でもエラーにならない。template<typename int> void foo(typename int n) {}更にtypenameを多重に宣言してもエラーとはならない。teplate<typename typename typename T> class bar {}他のC++コンパイラではエラーとなるので可搬性に欠けるプログラムが作られてしまう可能性がある。