有一些像这样的代码:
// Convenience to make things more legible in the following code
const float & x = some.buried.variable.elsewhere;
// Go on to use x in calculations...
Run Code Online (Sandbox Code Playgroud)
我被告知"const float&"是"坏",应该只是一个普通的浮点数或常量浮点数.
然而,除了"你不必输入'和'"之外,我无法想到一个令人信服的理由.
事实上,在我看来,在某些情况下原始可能更好,因为编译器可能不会为变量分配额外的堆栈空间.
换句话说,最初我可以有效地说:
assert(&x == &some.buried.variable.elsewhere)
Run Code Online (Sandbox Code Playgroud)
而在第二种情况下我不能.
此外,在我看来,原始似乎更好地传达意图,因为引用的整个要点是为另一个值创建别名.
任何人都可以举例说明"const float&"版本在某种有形方面比普通的"浮动"或"常量浮动"更糟糕吗?