len1 = len1 + len2; //ok
并且,我们不能将不同单位的量相加:
len1 = len1 = quantity<float,mass>(
乘法比加减法复杂一些。到目前为止,运算的参数和结果的单位都是一样的,但是做乘法时,结果的单位往往和两个参数的单位都不相同。对于乘法,下面的式子:
(xa)(xb) = x(a+b)
意味着结果的单位的指数为相应参数的单位的指数和。商与此类似,为指数差。
为此,我们使用mpl的transform算法来将两个序列中的对应元素相加。transform是个元函数,它遍历两个并行的输入序列,对于每个位置将两个序列中的对应元素传给一个任意的(用户提供的)二元元函数,并且将结果存入一个输出序列。
template <class sequence1,