2017-07-16 1 views
0

コマンド実行すると:C++でネームスペースのすべてのコンテンツを表示することはできますか?

using namespace std; 

をあなたはstd名前空間の全て要素への直接アクセスを取得します。しかし、あなたは唯一のstd::coutまたはstd::endlので、ディレクティブを使用する方が良いだろうを使用するとします。

using std::cout; 
using std::endl; 

だから、あなただけがないすべてを使用する必要がオブジェクトを取得します。 私の質問は:のような

using namespace std; 

何か: は、コマンドを使用するときに追加された内容を表示する方法があります(私はこれは非常に間違っている知っている)

#include <iostream> 
using namespace std; 

int main(){ 

cout << std; 

return 0; 
} 
+0

いつでもソースコードを見ることができます。 – Charles

+0

C++言語仕様には何もありません。使用しているC++コンパイラのドキュメントを参照する必要があります。おそらくあなたのC++コンパイラには、この情報を取得するために使用できるコンパイラ固有のツールがいくつかあります。 –

+0

名前空間内にあるものを一覧表示するための唯一のツールは、その名前空間内にあるもののドキュメントです。ネームスペース 'std'については、そのドキュメントは標準で(数百ページに渡って)、オンラインですぐに入手可能なさまざまなリファレンスドキュメントにあります。名前空間は複数のコンパイル単位(およびヘッダー)にわたって宣言することができるため、コンパイラは名前空間のすべての可視性を持たない可能性があります。 – Peter

答えて

-1

あなたがいることを宣言した場合namespace stdを使用している場合は、名前空間の名前の前に接頭辞を付けずに、特定の名前空間内のすべての関数とオブジェクトにアクセスできることをコンパイラーに指示します。

iostreamは実際にはヘッダーです。しかし、このヘッダーの中にはプロトタイプが宣言されており、それらは名前空間内に編成されています(その場合はstd)。

C++標準開発ライブラリに応じて、ファイルiostreamの内容が異なる場合があります。しかし、標準ライブラリの実装は...標準です。

ここでは、ソースコードの例を見てみましょう:GCC - Libstdc++ iostream

あなたは、ヘッダー内namespace std内で宣言された関数を参照することができますいくつかのIDE(Visual Studioと短所こと

00043 namespace std _GLIBCXX_VISIBILITY(default) 
00044 { 
... 
00061 extern istream cin;  /// Linked to standard input 
00062 extern ostream cout;  /// Linked to standard output 
00063 extern ostream cerr;  /// Linked to standard error (unbuffered) 
00064 extern ostream clog;  /// Linked to standard error (buffered) 
... 
00067 extern wistream wcin;  /// Linked to standard input 
00068 extern wostream wcout; /// Linked to standard output 
00069 extern wostream wcerr; /// Linked to standard error (unbuffered) 
00070 extern wostream wclog; /// Linked to standard error (buffered) 
... 

注意を)は、構文的補完を提供して、名前空間またはクラススコープ内にあるものを表示することができます。

1

名前空間が提供するものを表示するツールは、その名前空間を提供するものと名前空間の内容を定義するヘッダーです。
ヘッダーは高度に最適化されていることが多く、人間の目にはあまり適していないため、読みやすくする方法があります。
例えば、stdの内部にあるものの接着は、多くのウェブサイトで利用できます。

他のネームスペースを見ると、文書とヘッダーも取得できます(できれば)。

「見る」ために、私はサムと同意する必要があると思います。

関連する問題