ASIO与BOOST::ASIO的不同之处

来源:互联网 发布:windows程序管理器 编辑:程序博客网 时间:2024/05/17 06:24

ASIO与BOOST::ASIO的不同之处

 

  1. Asio在名为“ASIO::”的名空间中,但是在Boost.Asio中,都在“boost::asio::”下面。
  2. Asio的主头文件是asio.hpp,在Boost.Asio 中是 boost/asio.hpp。 其他头文件也要做相似的改动。
  3. 在Asio中定义的宏都是以“ASIO_”为前缀,在Boost.Asio中是“BOOST_ASIO_”。
  4. Asio包含了一个类“asio::thread”来创建线程,Boost.Asio中为了避免与“Boost.Thread”库冲突,没有这个类。所以ASIO的项目转到BOOST::ASIO下,需要包含“boost/thread.hpp”,所以在Asio项目中使用“asio::thread* new_thread”的地方,转到Boost.Asio项目下应该改为“thread* new_thread”。
  5. Boost.Asio 中使用Boost.System 库来提供对错误码的支持(boost::system::error_code 和 boost::system::system_error),Asio则把错误码包含进了它自己的名空间(asio::error_code 和 asio::system_error)。所以在Asio项目中使用“const asio::error_code& err”的地方,转到Boost.Asio项目下应该改为“const boost::system::error_code& err”。
  6. 对于大多数用户而言,使用Asio库并不需要依赖Boost库,但使用Boost.Asio是需要依赖Boost.System库的。

如果有Asio项目要转到Boost.Asio下,就需要注意上面的问题哦。