[英]What's wrong with this initialization of unique_ptr?
有人可以告訴我,unique_ptr的以下初始化有什么問題?
int main()
{
unique_ptr<int> py(nullptr);
py = new int;
....
}
g ++ -O2 xxx.cc -lm -o xxx -std = c ++ 11說:
error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<int>’ and ‘int*’)
py = new int;
^
干
unique_ptr<int> px(new int);
工作得很好。
關於
“ unique_ptr的以下初始化有什么問題?
這不是初始化有問題,而是以下任務。
這就是錯誤消息中的插入符號(向上箭頭)指向的位置:在賦值時。 強提示:使用reset
成員函數,或創建unique_ptr
實例。
關於
干
unique_ptr<int> px(new int);
工作正常。
它是指向unique_ptr
的原始指針的賦值,這是有問題的,而不是初始化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.