-2
は、私はユニークなポインタについて、次の質問を持っており、所有権移転 は、以下のユニークPTRとセマンティクスを移動
class Base
{
Base()
{
}
void foo(unique_ptr<Base> p)
{
}
};
void main()
{
Base b;
b.foo(std::unique_ptr<Base> p(new Base);
}
を想定上記のコードセクションは、一時的なユニークなポインタを作成し、私はコンパイルエラーを期待しました。しかしコードはコンパイルされます。 私は唯一の有効な関数のプロトタイプは、私はそれをsurprizeと機能の2人の署名が有効である午前
void foo(unique_ptr<Base> && p)
ことが期待。 rvalue参照を渡したときにvoid foo(unique_ptr p)が有効である理由を説明してください。 ありがとう
括弧が一致していないため、コードがコンパイルされません。 –