通过使用 && 声明本地值是否有任何有价值的优化
Is there any worthwhile optimization made by declaring local values with &&
在下面的成员函数中,用 &&
声明值 cc
、dd
、ee
和 ff
有什么好处吗?
void doStuff(double& aa, const size_t& bb) const {
const double&& cc = 2*bb;
const double&& dd = 2*sumT_;
const double&& ee = sumTsq_ - scaledTSq_;
const double&& ff = dd*dd - 2*cc*ee;
aa = (ff >= 0) ? (dd + sqrt(ff))/cc : std::numeric_limits<double>::infinity();
}
为什么不直接 const double
?
你是对的。 double 的移动和复制之间没有成本差异。
在下面的成员函数中,用 &&
声明值 cc
、dd
、ee
和 ff
有什么好处吗?
void doStuff(double& aa, const size_t& bb) const {
const double&& cc = 2*bb;
const double&& dd = 2*sumT_;
const double&& ee = sumTsq_ - scaledTSq_;
const double&& ff = dd*dd - 2*cc*ee;
aa = (ff >= 0) ? (dd + sqrt(ff))/cc : std::numeric_limits<double>::infinity();
}
为什么不直接 const double
?
你是对的。 double 的移动和复制之间没有成本差异。