Visual Studio or boost::asio bug?
Visual Studio or boost::asio bug?
我刚刚MSVC2015
"升级"到更新 2 并遇到了boost::asio
问题 12115...
我很高兴地说,boost issue 12115
中描述的解决方法,即从basic_io_object.hpp
的第 43 行中删除service_has_move
可以很好地更改:
#if defined(BOOST_ASIO_HAS_MOVE)
...
static const bool value =
sizeof(service_has_move::eval(
static_cast<service_type*>(0),
static_cast<implementation_type*>(0))) == 1;
...
#endif // defined(BOOST_ASIO_HAS_MOVE)
自
#if defined(BOOST_ASIO_HAS_MOVE)
...
static const bool value =
sizeof(eval(
static_cast<service_type*>(0),
static_cast<implementation_type*>(0))) == 1;
...
#endif // defined(BOOST_ASIO_HAS_MOVE)
我不是编辑库的忠实粉丝,尤其是boost
!
那么有人可以告诉我这是否真的是一个boost
问题,或者问题是否MSVC2015
在更新 2 中更改其move
行为?
仅供参考,原始代码在MSVC2015
更新 1 和 MinGW
4.9.2(在 Windows 10 上)和 GCC
5.3.1(在 Fedora 上)下编译和工作正常,使用 boost
1.60.0
和 1.61.0
。
我目前正在使用boost
1.61.0
但boost issue 12115
是在boost
1.60.0
上提出的。
我认为谁有错是很明显的。如果您必须删除 boost 中的某些内容来解决此问题,那么 boost 有错,不是吗?宏BOOST_ASIO_HAS_MOVE
是根据 boost 配置标头中的编译器检测定义的。显然,当您更新时,这些标头所依赖的编译器版本和其他信息不匹配,因此未定义您必须删除的命名空间。
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 提升 ASIO 无法识别计时器对象
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- Clang bug?使用指针作为模板参数
- 缓慢提升ASIO
- 从 Boost ASIO 获取 epoll 描述符 io_service对象
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ Boost::asio串行通信与Arduino无法写入
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 提升 ASIO - io_service 不要等待连接到线程
- 执行时使用 boost::asio::d eadline_timer 时出错
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- Visual Studio or boost::asio bug?
- Boost::asio::async_write混合来自两个消息的数据(bug)