規格だとstructで宣言してもclassで宣言してもクラスとして扱い、定義で異なる側を使っても問題が起こらない事になっている。

MSのコンパイラはマングリング時にわざわざ別物として扱うせいで問題が出てくる。