私はそれに気づきました
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main(int argc, char* argv[]){
....
}
クラスである名前空間の使用と使用を使用boost::asio::ip::tcp
しません。そのような方法でそれを書くことの利点は何ですか?tcp
私はそれに気づきました
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main(int argc, char* argv[]){
....
}
クラスである名前空間の使用と使用を使用boost::asio::ip::tcp
しません。そのような方法でそれを書くことの利点は何ですか?tcp
のすべてのコンテンツをグローバル名前空間に入力するわけではありませんnamespace boost::asio::ip
。
必要なものだけを使用します。次の例を見てください。
namespace A
{
void foo() {}
void goo() {}
}
namespace B
{
void foo() {}
void goo() {}
}
あなたがするなら
using namespace A;
using namespace B;
メソッドを呼び出そうとすると、あいまいさが生じます。
しかし、あなたは次のように言うことができます:
using A::foo;
using B::goo;
そして曖昧さがなくなります。
もちろん、これを行う最も安全な方法は、まったく使用せず、使用using
するたびに名前を完全に修飾することです。
これはusing 宣言です( using ディレクティブ.
入力boost::asio::ip::tcp;
すると、クラスへの「ショートカット」が提供されますが、名前空間tcp
の残りの部分へのショートカットは提供されません。boost::asio::ip