【发布时间】:2015-01-26 14:46:52
【问题描述】:
在处理从数组或通过任何其他冗长语法获得的T 实例时,我经常使用const T& 为对象起别名并使我的代码更具可读性(当然,前提是对象的生命周期允许它)。我在其他地方看到过这个,例如here 在 Stefan Reinalter 的优秀博客上。剥离并注释了他的代码版本:
void Render()
{
for (size_t i = 0; i < m_visibleSubMeshes.size(); ++i)
{
// Get current submesh from array and create alias
const SubMesh& sm = m_subMeshes[i];
// Enjoy shortened syntax using the const reference
context->Draw(sm.startIndex, sm.numIndices);
}
}
这是否会导致额外的指令,或者这在所有情况下都与直接访问 m_subMeshes[i].startIndex 和 m_subMeshes[i].numIndices 相同吗?
【问题讨论】:
-
请注意,const 引用绑定会导致对象的生命周期(如果需要)延长到该 const 引用的生命周期。
标签: c++ reference constants alias const-reference