[TOC]

c++11条款学习

文章参考:https://blog.csdn.net/coolmeme/article/details/43405155

条款21:尽量使用std::make_unique和std::make_shared而不直接使用new

​ 让我们从对齐std::make_unique 和 std::make_shared这两块开始。std::make_shared是c++11的一部分,但很可惜std::make_unique不是。它是在c++14里加入标准库的。假如你在使用c++11,也别担心,你很容易写出一个基本的版本。看这里:

1
2
3
4
5
6
template<typename T, typename... Ts>

std::unique_ptr<T> make_unique(Ts&&... params)
{
return std::unique_ptr<T>(new T(std::forward<Ts>(params)...));
}