STLと仲が悪くなるのはなぜ?

__m128 と vector なら...

__m128 a = { 0.1f, 0.2f, 0.3f, 0.4f };
std::vector< __m128 > v;
v.push_back( a );

コンパイル通ります。
でも、継承したベクトルクラスなんかを作ると...

class vec4 : public __m128 { ... };
std::vector< vec4 > v;
v.push_back( vec4( 0.1f, 0.2f, 0.3f, 0.4f ) );

コンパイルエラー。アラインが...とか言って怒られます。いつも悩まされます。