C++为了保证程序的异常安全是否所有的new操作都需要使用auto_ptr进行处理。
问题如题,看到书上提到保证异常安全可以使用标准库的auto_ptr进行一次封装,我想问一下各位在实际应用中是如何对这种行为进行取舍的。
[解决办法]
auto_ptr, 从来不用,貌似都不建议用吧?
[解决办法]
异常只要 catch 了程序就不会挂吧,auto_ptr 是用于保证异常情况下不发生资源泄漏用的,由于其所有权管理的行为问题,很少用,替代产品包括,RAII, shared_ptr, unique_ptr。
[解决办法]
从严谨角度可以加
不过一般都不会用这个smart pointer
[解决办法]
都异常了还处理啥啊 直接崩掉比较好
[解决办法]
这个 很少用过,基本没用过
[解决办法]
用shared_ptr比较多
[解决办法]
auto_ptr做语言研究的时候还是可以用用的。实际中,大多使用shared_ptr。
[解决办法]
尽量用shared_ptr,auto_ptr带来的问题远远多于便利
[解决办法]
auto_ptr仅是一个玩具。
shared_ptr用多了死得更惨。
不能别抛异常么。google就禁用异常的。
[解决办法]
包治百病的灵丹妙药不存在。 如果嫌C++的世界太危险,请移步到java/C#
[解决办法]
根据实际需要使用 auto_ptr(unique_ptr C++11) 、shared_ptr、valarray、vector
只是大部分公司禁用异常或者根本不考虑异常安全,好多人都不知道异常安全是什么
[解决办法]
shared_ptr的使用也是有性能开销的,shared_ptr使用在多线程共享资源的情况比较多,还有当你的异常处理流程过于复杂的情况下推荐用shared_ptr,如果自己能够把握资源的产生和释放,那么还是原始指针吧,个人观点,楼下开喷
[解决办法]
[解决办法]
只有必须要用的时候才用. 假如你知道什么情况必须用. 应该就没有问题了.
[解决办法]