【发布时间】:2021-11-26 11:56:00
【问题描述】:
我正面临着我的同事编写这样的函数定义:
typedef long double Real;
void func(const Real& x, const Real &y);
我知道对 primitive types 使用 pass-by-ref 有点不好,但是 long double 呢?它的长度是 80 位,比现在普通机器上的 64 位指针还要长。所以也许对于long double,pass-by-ref 比 pass-by-value 更有效?
【问题讨论】:
-
请注意,
long double没有有为 80(或任何其他数量)位。在某些编译器中,long double是double的别名。 C++ 仅规定它必须至少与double一样大,但可以更大。 -
imho
Real具有高度误导性,因为long double没有正确建模实数 -
任何合理的实现都会在适当的寄存器中传递值。
标签: c++