未能使函数模板“std::shared_ptr<_Other> std::make_shared(_Types &&...)”专用化
时间: 2023-11-09 19:49:27 浏览: 73
C++11 std::shared_ptr总结与使用示例代码详解
std::make_shared函数模板无法被专用化,因为它是一个通用的函数模板,旨在用于构造std::shared_ptr对象。它的目的是为了简化创建和初始化std::shared_ptr对象的过程,通过将Object对象和_Ref_count_base计数放入_Ref_count_obj类中,只进行一次堆内存分配。这样,使用std::make_shared可以避免直接构造std::shared_ptr时所涉及的两次堆内存分配。无论您使用哪种类型的对象,都可以使用std::make_shared来构造std::shared_ptr对象。
阅读全文