2017-04-03 92 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標準中'綁定'的其他用途涉及其他各種綁定的各種組合。

如果我錯了,請糾正我!