Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 1.75 KB

make_unique_default_init.md

File metadata and controls

66 lines (49 loc) · 1.75 KB

make_unique_default_init

  • memory[meta header]
  • std[meta namespace]
  • function template[meta id-type]
  • cpp20[meta cpp]
namespace std {
  template<class T> unique_ptr<T> make_unique_default_init();                                // (1)

  template<class T> unique_ptr<T> make_unique_default_init(size_t n);                        // (2)

  template<class T, class... Args> unspecified make_unique_default_init(Args&&...) = delete; // (3)
}
  • unique_ptr[link unique_ptr.md]
  • unspecified[italic]

概要

unique_ptrオブジェクトを構築する。その際、型Tのオブジェクトはデフォルト構築される。

  • (1) : Tが配列型でないときに選択される。
  • (2) : Tが不明な境界の配列のときに選択される。
  • (3) : 許可されていないオーバーロードとして宣言される。Tは既知の境界の配列型である。

戻り値

  • (1) : unique_ptr<T>(new T())
  • (2) : unique_ptr<T>(new remove_extent_t<T>[n]())

#include <iostream>
#include <memory>
#include <utility>

int main()
{
  std::unique_ptr<std::pair<int, int>> p1 = std::make_unique_default_init<std::pair<int, int>>();
  std::cout << p1->first << ':' << p1->second << std::endl;
}
  • std::make_unique[color ff0000]

出力

0:0

バージョン

言語

  • C++20

処理系

関連項目

参照