【发布时间】:2014-10-26 23:28:46
【问题描述】:
我遇到了 make_unique 的问题,让我不知所措。
_replace_find = unique_ptr<Fl_Input>(new Fl_Input{ 80, 10, 210, 25, "Find:" });
_replace_find = make_unique<Fl_Input>(Fl_Input{ 80, 10, 210, 25, "Find:" });
当我使用 make_unique 行时,它给了我这个错误,但是当我使用另一个时,它编译得很好。据我了解,make_unique 几乎做同样的事情,但异常安全。
Error 1 error C2248: 'Fl_Widget::Fl_Widget' : cannot access private member declared in class 'Fl_Widget' c:\program files (x86)\microsoft visual studio 12.0\vc\include\fl\fl_input_.h 488 1 hayley
我找不到任何处理 SO 上的 make_unique 或 unique_ptr 的错误。否则我不会问这个。
一如既往地感谢您的时间和建议。
【问题讨论】:
-
我猜问题是你的新代码正在调用复制构造函数。
-
@Brian 或移动构造函数。
标签: c++ visual-c++ unique-ptr c++14