C ++で「using」宣言を使用して、std :: stringとstd :: vectorをローカル名前空間に追加しています(不要な「std ::」の入力を節約するため)。
using std::string;
using std::vector;
class Foo { /*...*/ };
この宣言の範囲は何ですか?ヘッダーでこれを行うと、ヘッダーを含むすべてのcppファイルにこれらの「using」宣言が挿入されますか?
using宣言(ましてやディレクティブをヘッダに)すべてで、でも、名前空間の中に!これにより発生する問題については、ネームスペース内での宣言の使用の範囲を参照してください。
usingクラスと関数のスコープで使用することは、議論された問題に関して安全です。
usingusingそれはヘッダーのユーザーにとって頭痛の種となるでしょう。