我有2个模板类,Vector3和Matrix4x4。 Vector3被明确地实例化为float
,double
和int
,而Matrix4x4被明确地实例化为float
和double
。
我正在考虑用户在将它们与不同类型相乘时所期望的返回类型。将发生内部乘法,使得非匹配类型将相互促进,但我不确定要返回的类型,例如。
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明确地将一个转换为另一个}}?