在处理T
从数组或通过任何其他冗长语法获得的实例时,我经常使用 aconst T&
给对象起别名并使我的代码更具可读性(当然只有在对象的生命周期允许的情况下)。我在其他地方看到过这个,例如在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
直接访问相同吗?