この静的キャスト演算子を使用したテンプレートがあります。
operator Vector2<float>() const
{
return Vector2<float>(x, y);
}
これは、float としてキャストすると、x
とy
が整数バリアントの整数であっても、クラスの float バリアントを返すことを意味します。しかし、明らかにそうではありません:
テストとして:
Vector2<float>position=static_cast<float>(Vector2<int>(5,5));
*Vector2 から float への static_cast の一致する変換がありません* というコンパイラ エラーが発生します。
しかし、変換は静的キャストのオーバーロードとして上記で指定されているのではないでしょうか?