来自http://eel.is/c++draft/class.member.lookup#1:
在范围内搜索来自程序点P
X
的名称是对from的单个搜索,除非是类或类模板的范围,在这种情况下,以下步骤定义搜索结果。N
X
N
P
X
T
[注1:只有当
N
是转换函数ID或单次搜索什么也没找到时,结果才会有所不同。——尾注]
我很难理解 Note。似乎来自类范围的“单一搜索”会在命名空间范围内找到前面的声明,因为命名空间范围包含类范围。但是,正如我们所知,如果名称也被声明为非依赖基类的成员,则基类成员优先于命名空间成员。注 1似乎与此相矛盾,因为它基本上是在说“如果N
不是转换函数 ID,那么您可以只进行正常的单次搜索,并且只有当您找不到任何内容时,才使用本节中的过程”。但是单次搜索会通过找到命名空间范围声明而成功,并且类成员查找会产生不同的结果。
我的理解错误在哪里?