我注意到
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main(int argc, char* argv[]){
....
}
使用usingboost::asio::ip::tcp
和 not using namespace wheretcp
是一个类。有人能告诉我这样写有什么好处吗?
我注意到
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main(int argc, char* argv[]){
....
}
使用usingboost::asio::ip::tcp
和 not using namespace wheretcp
是一个类。有人能告诉我这样写有什么好处吗?
您不会使用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
。