gpt4 book ai didi

c++ - 编译器会删除无效的引用吗?

转载 作者:行者123 更新时间:2023-12-01 14:49:42 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What exactly is the "as-if" rule?

(3 个回答)


1年前关闭。




情况是我想使用描述性变量名称作为成员变量,以便它们在标题中很容易理解(例如: min_distance_to_polygon )。然而,在复杂的算法中,我发现使用更短的变量名称会更顺畅,因为上下文很清楚(例如 min_dist 在这种情况下)。

所以在方法的定义中,我只写:

int & min_dist = min_distance_to_polygon;

这是否会导致编译后的开销,这是否是可以接受的编码风格?

编辑:这会更好吗(因为它可以防止可能的拷贝)?
int & min_dist{min_distance_to_polygon};

最佳答案

Does this cause an overhead after compilation



不使用优化编译器,不。这是编译器的基本优化。事实上,由于编译器的值跟踪和/或 CPU 寄存器在幕后的实际工作方式,即使复制该值也可能不会导致任何开销(假设它保持不变)(请参阅 Register Renaming )。

and would this be acceptable coding style?



这是基于意见和有争议的。我认为存在合理选择的代码,但这种代码很少见。最后,由您来判断 future 的读者是否会发现任一版本更易于阅读和理解。

Would this be better (as it prevents a possible copy)?



您展示的两个代码片段在语义上完全相同 - 都是初始化。否 operator=X x = y; 中被调用(甚至在概念上) .

关于c++ - 编译器会删除无效的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58840724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com