簡體   English   中英

使用const引用別名化變量

[英]Aliasing a variable using const reference

當處理從數組或通過其他冗長語法獲得的T實例時,我經常使用const T&為對象命名,並使我的代碼更具可讀性(當然,只有在對象的生存期允許時)。 我已經看到了這個在其他地方,比如這里對斯特凡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].startIndexm_subMeshes[i].numIndices

這取決於配置。

如果進行了優化,那么對於任何好的編譯器,它都應產生相同的結果。 對於發行版本,這將是典型的。

如果禁用了優化,則應該產生較少的指令,因為您僅一次取消引用集合。 這對於調試版本來說是很典型的,在這種情況下,它還具有易於檢查對象的優點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM