柯尼格查找(Koenig lookup)
比如在链表实现中需要一个node局部变量,可以这样声明:
main_savitch_6B::node<Item> *tail_ptr;
其中main_savitch_6B是名空间,如果我们没有加using语句的话,就必须指明名空间。然而,如果我们使用节点操作函数list_copy,我们并不需要总是写成main_savitch_6B::list_copy。这是因为编译器有时可以根据函数的参数来判断,这个函数究竟属于哪个名空间。list_copy函数的参数也是在man_savitch_6B名空间中定义的。
这种利用参数来决定使用哪个函数的方法称为柯尼格查找(Koenig lookup)。
有些编译器不允许对模板函数的柯尼格查找,所以最好写完整。
整理自 Data Structures and Other Objects Using C++ ( Fourth Edition ) Michael Main, Walter Savitch. p404