0

我有一个带有这个静态转换运算符的模板:

operator Vector2<float>() const
{
    return Vector2<float>(x, y);
}

这对我来说意味着如果我转换为浮点数,它将返回该类的浮点变体,即使xy是来自整数变体的整数。但显然不是这样:

作为测试:

Vector2<float>position=static_cast<float>(Vector2<int>(5,5));

我收到编译器错误 *No matching conversion for static_cast from Vector2 to float*。

然而,转换是上面指定的,不是静态转换重载吗?

4

1 回答 1

2

你应该像这样使用它:

Vector2<float> position = static_cast<Vector2<float>>(Vector2<int>(5,5));

因为声明指定转换为Vector2<float>,而不是转换为float

于 2013-01-15T11:35:58.297 回答