0

STL、Win32、Boost、posix などの現在の C/C++ ライブラリのサイズが大きいため、どの識別子に問題があるのか​​という問題が生じます。名前空間を使用しても、既存のライブラリと連携するように設計された新しいライブラリを設計するときに、他のライブラリの最も使用される識別子と衝突しない識別子を選択できると便利です。

少なくとも C++ 標準ライブラリ (0x を含む) については、利用可能なリストがあるはずです。この目的のために、ヘッダー ファイルのセットを読み取り、名前空間で並べられたすべての名前のリストを作成するツールを誰かが作成したと考えるのが妥当です。そのようなツールを知っている人はいますか?このツールは、特定の cpp ファイルに #include されているものだけではなく、ディレクトリ ツリー内のすべてのヘッダーを読み取る必要があります。

4

2 に答える 2

4

名前空間を使用しても、既存のライブラリと連携するように設計された新しいライブラリを設計するときに、他のライブラリの最も使用される識別子と衝突しない識別子を選択できると便利です。

かなりの数のライブラリがそうしていることはわかっていますが、この試みは根本的に間違っています。

衝突しないように識別子を設計するのではなく、明確で、短く、説明的であるように設計してください。これらが唯一の基準であるべきです。

名前空間のおかげで、識別子の衝突は解決された問題です。適切に使用すれば、名前の衝突は発生しません。

于 2011-01-22T13:46:09.783 に答える
-1

egrep を使用するのはどうですか。【もぐもぐ30キャラゲット】

于 2011-01-22T13:32:46.820 に答える