2017-04-03 17 views
0

C++では、名前のバインドと名前の参照に違いはありますか? C++ 14の標準(N4296)は、(3.4)の名前検索を次のように定義しています。C++での名前の参照と名前のバインドの違い

名前ルックアップは、その名前の宣言(3.1)と名前の関連付けを関連付けます。結合

名は宣言を見つけるプロセスである:私は標準でバインディング名の定義を見つけることができませんが、彼らのXL C/C++コンパイラのためのIBM Knowledge Centerのドキュメントが定義されて

テンプレート内で明示的または暗黙的に使用される各名前について

二つの定義の間の唯一の違いは、(1)バインディング名がテンプレートで使用される名前に特異的に参照し、ネームルックアップがを使用することを指す(2)バインディング名は、名前を参照することであると思われます名前の

しかし、C++標準のオーバーロード解決に関するセクション(13.3)では、頻繁にバインディングが定義されていますが、定義はありません。このような意味での 'バインディング'の使用方法は、バインディングが引数と関数パラメータの関連付けを参照しているように見えます。まず

、この定義は、他の2つの定義のいずれかが異なるようで、それは(広く)に収まると思った名前検索の定義我々は機能の名前を比較することにより、その宣言にバインドされていることを前提とした場合引数とパラメータの型。これはセクション(13.3)で使用されているセンスとまったく同じ意味ではありませんが、適切な定義がなくても標準を理解しようとしています。

誰かが「ネームバインディング」または「バインディング」の定義が良好であれば、感謝します。

+0

"ただし、C++標準のオーバーロード解決に関するセクション(13.3)では、「ドキュメント全体で一度だけ使用される名前バインディングはありませんが、おそらくバグです。 –

答えて

0

Wilson &クラーク比較プログラミング言語の関連部分を読んで、私はそのトピックをよりよく理解していると思います。私が正しく推測するならば、「バインディング」という用語は、名前宣言バインディング、名前型バインディング、宣言参照バインディング、参照値バインディング、および名前/値バインディングを含む、関連用語の範囲をカバーしています。

"名前検索"は、名前 - 宣言バインディングの同義語のようです。 C++ 14標準における「結合」の他の用途は、他の種類の結合の様々な組み合わせに関する。

私が間違っている場合は、私を修正してください!

関連する問題