C++名称查找 -

Hec*_*tor 3 c++ language-lawyer

标准说(括号我的)

在3.4.1 [非限定名称查找]中列出的所有情况下,将按照每个相应类别中列出的顺序搜索范围...

为什么这些名字会被保存在某种有序列表中?毕竟,除了函数重载和名称隐藏之外,我认为名称在名称空间中是唯一的.


更新以发表评论:

我希望编译器保持在容器中定义的名称,例如每个范围的unordered_set和在查找链中链接的范围.

我想知道为什么名称会被分类为每个类别的列表(我认为是变量,typedef,结构类似,函数,模板等),并且这些列表进一步排序.

AnT*_*AnT 6

在这种情况下,"订单"不是名称的顺序.这是范围的顺序.在每个类别中,范围按特定顺序列出(通常为"由内而外":从内部范围到外部范围).这是搜索这些范围的顺序.通常,包含相关名称的第一个范围会导致搜索停止.