我想这是一个非常讨厌的问题 - 似乎我班级的属性析构函数之一造成了僵局。属性析构函数在类析构函数之后自动调用。而且我想手动调用它们并在每个成功后进行日志条目。
该问题仅发生在无法使用调试器的设备上,因此我改用日志。
Client::~Client() {
// Stops io service and disconnects sockets
exit();
LOG("io_service stopped"<<endl);
// Destroy IO service
io_.~io_service();
LOG("io_service destroyed"<<endl);
}
但是上面的代码实际上会导致异常,因为~io_service()
被调用了两次。
那么有没有办法正确地做到这一点?如果没有,调试析构函数的替代方法是什么?