登录社区云,与社区用户共同成长
邀请您加入社区
此外,优先使用std::make_unique和std::make_shared来构造智能指针,这些函数提供了更好的异常安全性并可能优化内存分配。C++标准库提供了几种智能指针类型,包括std::unique_ptr、std::shared_ptr和std::weak_ptr,每种都有其特定的使用场景和所有权语义。std::unique_ptr是一种独占所有权的智能指针,它确保同一时间只有一个un
co_await` 的作用是挂起当前协程的执行,等待某个异步操作完成,而不会阻塞所在线程。尽管目前标准库只提供了底层的协程框架,需要开发者或第三方库(如ASIO、cppcoro)来构建更高级别的抽象,但它无疑为C++高性能异步IO、并发任务等领域的开发奠定了坚实的基础,代表了未来C++异步编程的发展方向。在协程版本中,`my_coroutine` 函数内部的代码看起来是顺序执行的。这种写法的缺点在
尽管智能指针带来了诸多好处,但也需要警惕误用,比如在循环引用中不适当地使用shared_ptr,或者在不必要的场景下过度使用shared_ptr带来的性能开销。std::weak_ptr是为了解决shared_ptr可能导致的循环引用问题而设计的。它是一种不控制对象生命周期的智能指针,它指向一个由shared_ptr管理的对象,但不会增加其引用计数。为了解决这些问题,现代C++标准库引入了一套强大
为什么要用智能指针?