2017-04-03 94 views
0

在C++中,名称绑定与名称查找有什么区别?工作草案C++ 14标准(N4296)将(3.4)中的名称查找定义为C++中名称查找与名称绑定的区别

名称查找将名称的使用与该名称的声明(3.1)相关联。

我找不到名,在标准结合的定义,但对他们的XL C/C++编译器的IBM知识中心文档定义:

名称结合是寻找报关过程对于在模板中显式或隐式使用的每个名称。

两个定义之间唯一的区别似乎是,(1)名称绑定特指在模板和(2)的名称结合是指一个名称中使用的名称,而名称查找是指使用名称为

但是,有关C++标准中的重载解析的部分(13.3)提到频繁绑定,但没有定义它。在这种情况下使用“绑定”的方式使得看起来绑定指的是参数与函数参数的关联。

起初,这个定义似乎从其他两个定义的不同,认为它符合(广义)名称查找的定义,如果我们假设通过比较该功能的名字被绑定到其声明参数类型和参数。这不完全是第13.3节中使用的意义,但我试图理解没有正确定义的标准。

总之,如果任何人有'名字绑定'或'绑定'的好定义,我会很感激。

+0

“但是,关于C++标准中的重载解析的第(13.3)节经常提到绑定”但不是名称绑定,它只在整个文档中使用过一次,可能是一个错误。 –

回答

0

已经阅读了Wilson的相关部分& Clark 比较编程语言,我想我对这个话题有了更好的理解。如果我正确猜测,术语“绑定”涵盖了一系列相关术语,包括名称声明绑定,名称类型绑定,声明引用绑定,引用值绑定和名称 - 值绑定。

“名称查询”似乎是名称声明绑定的同义词。 C++ 14标准中'绑定'的其他用途涉及其他各种绑定的各种组合。

如果我错了,请纠正我!