0
我正在使用boost 1.55(io_service doc)。我需要在io_service上调用析构函数,以便在串行设备上通电后重置它以获取新数据。问题是,当析构函数被调用两次(重新尝试连接)时,我得到了分段错误。boost :: asio :: io_service检查是否为空
在头文件
boost::asio::io_service io_service_port_1;
在功能关闭连接
io_service_port_1.stop();
io_service_port_1.reset();
io_service_port_1.~io_service(); // how to check for NULL?
// do I need to re-construct it?
下不起作用:
if (io_service_port_1)
if (io_service_port_1 == NULL)
谢谢。
你不能摧毁一个物体两次。一旦它被摧毁,它就消失了。既然你明确调用了析构函数,你是不是很想实例化一个新的对象实例?为什么你明确地调用析构函数呢? –
@CaptainObvlious我在上面陈述我的理由(串行设备通电)。我如何实例化一个新的'io_service'实例? – xinthose
在堆上分配它并在第一次将它摧毁时将其设置为null?或者如果它提供了一些机制来做你想做的事情,可能会使用'boost :: optional'。 – Arunmu