私は答えを見つけることができません簡単なnoobの質問持っている:あなたは、通常のオブジェクトにへ変換オブジェクト:: unique_ptrを
int i;
を変換しない方法をC++で
をstd::unique_ptr
?
std::unique_ptr<int> iptr = &i; //invalid
std::unique_ptr<int> iptr = static_cast<std::unique_ptr<int>>(&i); //invalid
ありがとうございます。
完全性のために機能は素晴らしかったが、私はそれが必要でないほど多く見過ごされたとは思わない。 make_sharedは、2つのオブジェクトを一度に割り当てる問題を解決していることを覚えておいてください(同等のコンストラクタはありません)。一方、unique_ptrはこれを必要としません。 –
これは当てはまりません。 1つの関数呼び出しで2つのunique_ptrを作成すると、まだ安全ではない例外があります。たとえば、make_uniqueが保存します。 – Puppy
その時点でunique_ptrを直接作成することで回避できますか? 'func(unique_ptr(new T)、unique_ptr (new U))' –