|
|
1
9
普通的非限定名称查找开始在使用名称的上下文中查找,并沿着封闭作用域的链进行查找。它停在包含匹配名称的最嵌套作用域中。即使这样找到的名称后来被确定为不合适(例如,对于给定的调用,函数重载是不可行的;或者成员函数是不可访问的),这也是正确的。
这里,查找的上下文是
在第二个示例中,重载是通过依赖于参数的查找找到的。除了非限定查找之外,此查找专门针对函数调用中的函数名执行,并在与调用的参数类型相关联的作用域中查找名称在本例中,namespace
因此,逻辑上属于类公共接口一部分的自由函数(例如重载运算符)通常应该与类本身在同一个命名空间中定义,以使依赖于参数的查找能够工作。
|