C ++模板返回类型

时间:2015-04-09 21:39:21

标签: c++ templates

我有2个模板类,Vector3和Matrix4x4。 Vector3被明确地实例化为floatdoubleint,而Matrix4x4被明确地实例化为floatdouble

我正在考虑用户在将它们与不同类型相乘时所期望的返回类型。将发生内部乘法,使得非匹配类型将相互促进,但我不确定要返回的类型,例如。

Vector3i vec3i(1, 2, 3);

Matrix4x4f mat4f; //Automatically set to identity

auto result = vec3i * mat4f;
auto result2 = mat4f * vec3i;

在这两种情况下,我认为结果和结果2都应该是vec3f,就好像我要将int与float相乘。我想我只是想知道这是否符合常规做法,或者如果不是,那么如果不是将不同类型相乘,我应该做一些事情,比如使用static_cast和{{1明确地将一个转换为另一个}}?

0 个答案:

没有答案