2017-04-20 11 views
1

私は2つのソースコードを見ています。一つは、これを使用しています。C++名前空間との違いは何ですか

using boost::property_tree::ptree; 

および他の用途本:

namespace ptree = boost::property_tree::ptree; 

違いは何ですか?あなたは現在の名前空間にboost::property_tree::ptreeクラスで引っ張る

using boost::property_tree::ptree; 

+0

名前空間をスコープにインポートします。スコープには 'using'と書かれていますが、他のものはありません。 –

+2

私は実際になぜあなたがdownvotedされているのか分かりません。それは半分まともで、明確な質問 – StoryTeller

+0

@StoryTeller私は研究の欠如のためにdownvotedです。 –

答えて

-1

usingステートメントは、名前空間をスコープに持ち込みます。 namespaceステートメントは、エイリアスを定義します(::演算子でアクセスする必要があります)。

編集:正解については、プログラマーのお手本の答えをご覧ください。

+2

この例では、 'using'文*は' ptree'が名前空間ではないため、名前空間をスコープに持ちません。 – juanchopanza

7

。その時点以降、boost::property_tree::ptreeの代わりにptreeを使用できます。 boost::property_tree::ptreeクラスない名前空間であるため、

namespace ptree = boost::property_tree::ptree; 

を使用すると、エラーを持っている必要があります。それ以外の場合(名前空間の場合)、名前空間のエイリアスが作成されます(ptBoost property tree tutorialsでどのように使用されているかなど)。

関連する問題