N3656 make_unique (Revision 1)
C++14では、std::unique_ptrクラスのオブジェクトを生成するヘルパー関数として、make_unique()が追加されます。
// <memory> namespace std { template<class T, class... Args> unique_ptr<T> make_unique(Args&&... args); template<class T> unique_ptr<T> make_unique(size_t n); template<class T, class... Args> unspecified make_unique(Args&&...) = delete; }
#include <memory> struct X { X(int a, int b, int c) {} }; int main() { // make_unique()の引数には、型Tのコンストラクタ引数を指定する std::unique_ptr<X> p = std::make_unique<X>(1, 2, 3); // 配列の場合は、要素数を指定する std::unique_ptr<int[]> q = std::make_unique<int[]>(5); }