模板中的Static_cast

时间:2013-01-15 11:32:24

标签: c++

我有一个带有这个静态强制转换操作符的模板:

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

这对我来说意味着如果我作为一个float进行转换,它将返回该类的float变量,即使xy是整数变量的整数。但显然不是这样:

作为测试:

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

我得到编译器错误*没有匹配的static_cast从Vector2转换为float *。

然而,转换是在上面指定的,不是,作为静态转换过载吗?

1 个答案:

答案 0 :(得分:2)

您应该像这样使用它:

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

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

相关问题