ascs 简明开发教程(二十五):关于standalone asio 停更

31 篇文章 0 订阅
31 篇文章 1 订阅

社区:198941541

从 Asio 1.25 开始,standalone asio 版本将不再更新,为此ascs只能换到依赖Boost.Asio,于是从ascs 1.8版本开始,它将不再依赖standalone asio。那么当我们升级到ascs 1.8之后,需要一些代码上的改动及注意事项,我总结如下:

一:原来asio::xxxx的地方,需要改成boost::asio::xxxx(除了如下第二点),比如asio::io_context。

二:原来asio::error_code的地方,需要改成boost::system::error_code。

三:原来使用asio宏的地方,比如ASIO_CONCURRENCY_HINT_SAFE,现在需要改成BOOST_ASIO_CONCURRENCY_HINT_SAFE。

四:原来不定义宏ASCS_USE_STEADY_TIMER的话,将使用system_timer,否则使用steady_timer,现在和st_asio_wrapper库一样,你需要显示定义ASCS_USE_SYSTEM_TIMER以使用system_timer,当两者都不定义的时候,将使用deadline_timer。

五:ascs仍然需要c++0x的支持,因为c++0x的加持,ascs可以做到尽量的减少对Boost的依赖,它不会依赖任何需要编译的Boost库(比如thread和system库),所以下载解开Boost库即可使用,和使用standalone asio一样方便。

六:1.8版本的ascs库,虽然是从Boost 1.81开始的,但在老的Boost版本上仍然可用,只要不是太老,另外你可能仍然需要编译Boost.system库。

七:得益于Boost,ascs 1.8也支持了websocket和ssl websocket,原来的ascs不支持是因为没有standalone的Beast库,只有Boost.Beast。

八:那么现在ascs与st_asio_wrapper库的区别,就仅仅是一个需要c++0x,一个不需要(但至少c++98)。另外ascs库即便在依赖Boost的情况下,编译和运行效率仍然是高于st_asio_wrapper库的,特别是编译效率,原因是ascs用了大量的c++0x features,比如lambda,其编译效率大大优于boost的bind和lambda。

上一篇 ascs 简明开发教程(24)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值