make_unique


概要

C++11でスマートポインタが追加されている。追加されたスマートポインタのうち、shared_ptrに対してのみ構築用のヘルパ関数が提供されていた。 C++14で、unique_ptrに対しても構築用ヘルパ関数make_uniqueが追加されたため、これにより殆どのケースでnew/deleteをソースコード上から排除できるようになる。

make_unique関数は配列にも対応している。

以下にサンプルを示す。

#include <memory>

int main() {
    std::unique_ptr<int>   p1 = std::make_unique<int>();
    std::unique_ptr<int[]> p2 = std::make_unique<int[]>(5);

    for(int i = 0; i < 5; ++i) {
        std::cout << p2[i] << " ";
    }
    std::cout << std::endl;             // 0 0 0 0 0
}

results matching ""

    No results matching ""