因为参数的类型(单位)必须总是匹配,所以我们现在可以轻易的写出加法和减法的规则:
template <class t, class d>
quantity<t,d>
operator+(quantity<t,d> x, quantity<t,d> y)
{
return quantity<t,d>(x.value() + y.value());
}
template <class t, class d>
quantity<t,d>
operator-(quantity<t,d> x, quantity<t,d> y)
{
return quantity<t,d>(x.value() - y.value());
}
这样,我们就可以写出类似下面的代码:
quantity<float,length> len1(
quantity<float,length> len2(