7

重複の可能性:
なぜ 'using namespace std;'なのですか? C ++で悪い習慣と見なされますか?

私は自分のコードstlshared_ptr多くの場所で を使用しており、使用したusingあらゆる場所で次のステートメントを使用していshared_ptrます。

using namespace std::tr1;

今私は使用する必要がありますboost::bimap。したがって、コードに次のヘッダー ファイルを含める必要があります。

#include <boost/bimap.hpp>

bimapヘッダー ファイルをインクルードするとすぐにshared_ptr型があいまいになり、 のすべての使用法を に変更する必要がありshared_ptrますstd::tr1::shared_ptrshared_ptrこれによりコードが醜くなるため、完全修飾名を使用してどこでも宣言する必要なく、このあいまいさを回避する方法を探しています。typedefforを使おうと思っていたのですstd::tr1::shared_ptrが、もっといい方法もあるかもしれません。アドバイスをいただければ幸いです。

4

2 に答える 2

6

紹介しないだけです。一般を避けるusing namespace ...

于 2012-12-09T12:48:32.070 に答える
5

以下はどうでしょう。

using shared_ptr = std::tr1::shared_ptr;

ただし、正しい答えは、using namespace ...ステートメントを使用しないか、名前空間エイリアスを作成するためだけに使用することです。

ところで、std::tr1昨年 C++11 が標準化されて以来、それは廃止されていることをご存知ですか?

于 2012-12-09T12:49:02.273 に答える