假设我有一个 2D 矢量模板类:
template<typename T> class Vec2 {
T x, y;
// ...
};
我希望 aVec2<double>
和 a之间总和的结果Vec2<int>
是 a Vec2<double>
,但默认情况下 C++ 不会这样做。
我想错了吗?
我应该尝试实现这种行为吗?
我应该如何实现它?一种方法可能是重载任何运算符,以便使用auto
和decltype
/或某些人自己进行类型提升来计算提升的类型,但这种方式绝不是微不足道的,甚至不允许我使用 boost.operators 来简化我的工作。其他建议?