我有一个带有这个静态强制转换操作符的模板:
operator Vector2<float>() const
{
return Vector2<float>(x, y);
}
这对我来说意味着如果我作为一个float进行转换,它将返回该类的float变量,即使x
和y
是整数变量的整数。但显然不是这样:
作为测试:
Vector2<float>position=static_cast<float>(Vector2<int>(5,5));
我得到编译器错误*没有匹配的static_cast从Vector2转换为float *。
然而,转换是在上面指定的,不是,作为静态转换过载吗?
答案 0 :(得分:2)
您应该像这样使用它:
Vector2<float> position = static_cast<Vector2<float>>(Vector2<int>(5,5));
因为声明指定了转化为Vector2<float>
,而不是转换为float
。