调用 boost::lock 析构函数的效果?
Effect of calling destructor of boost::lock's?
显式调用boost::lock
对象的析构函数是否有任何后果?
例如:
boost::mutex M_;
boost::mutex::scoped_lock SL_(M_);
SL_.~unique_lock();
SL_.unlock();
SL_.lock();
//both of the above work on runtime as if nothing happened to SL_
//note: typedef unique_lock<mutex> scoped_lock;
出于好奇而询问。
SL_.~unique_lock();
一旦调用了分配在本地存储上的对象的析构函数,它就不再是活动的
调用析构函数后引用对象成员是一种未定义的行为。
未定义的行为意味着任何行为都是可能的,并不一定意味着你的代码崩溃,但它意味着你可以看到不正确的行为或任何随机行为
所以不要那样做。
相关文章:
- 如何正确取消析构函数中的 Boost deadline_timer(在多线程环境中)?
- 与 boost odeint 集成期间的析构函数调用
- 使用 boost::thread 运行函子,但析构函数被错误地调用
- Boost 无锁队列断言用于简单的赋值和析构函数
- 尽管使用了 boost::scoped_ptr,我们是否应该删除析构函数中成员的指针
- Boost共享指针构造函数/析构函数
- Boost序列化程序:除非使用虚拟类析构函数,否则将收到警告C4308
- boost::lockfree-为排队的元素调用析构函数
- 正在从并发析构函数停止boost::asio::io_service::run()
- 为什么“boost::multi_array_ref”的析构函数是非虚拟的
- 对 MinGW-w64 gcc 上的 boost::random::random_device 构造函数和析构函数的未定
- boost::shared_ptr的析构函数阻止了唯一的线程
- boost::lock_guard分配、构造函数和析构函数开销
- boost::asio::io_service析构函数运行很长时间
- 调用 boost::lock 析构函数的效果?
- boost::lockfree::队列似乎没有释放内存,尽管每个集合对象上的析构函数都被调用
- boost::ptr_vector with arrays:我能确定它的析构函数调用delete[]而不是delete吗
- boost::任何析构函数崩溃
- 正在调用boost变量中匹配类型的析构函数
- 为什么Boost.Cconcept通过空指针调用析构函数