作为a Thread的延续,我遇到了一个问题 写一个返回的类的方法:
std::vector<std::unique_ptr<Object>>
写入这样的返回类型时会出现编译器错误。删除操作数或某些内容存在一些问题......
通常,我想编写一个初始化vector并返回它的方法。
有人可以帮我怎么写吗?
我得到: 试图引用已删除的函数h:\plikiprogramów(x86)\ microsoft visual studio 12.0 \ vc \ include \ xmemory0
这里我有以下代码段。我可以创建这样的方法吗?
std::vector<std::unique_ptr<Object>> Class::TestMethod(int param)
{
std::vector<std::unique_ptr<Object>> array;
auto day = std::make_unique<Object>();
array.push_back(day);
return array;
}
答案 0 :(得分:4)
您的错误实际上来自:
private static final String ACTION_BT_HEADSET_STATE_CHANGED = "android.bluetooth.headset.action.STATE_CHANGED";
private static final int STATE_CONNECTED = 0x00000002;
private static final int STATE_DISCONNECTED = 0x00000000;
private static final String EXTRA_STATE = "android.bluetooth.headset.extra.STATE";
private BroadcastReceiver mBlueToothHeadSetEventReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
String action = intent.getAction();
if(action == null)
return;
if(action.equals(ACTION_BT_HEADSET_STATE_CHANGED)){
int extraData = intent.getIntExtra(EXTRA_STATE , STATE_DISCONNECTED);
if(extraData == STATE_CONNECTED ){
//TODO :
}else if(extraData == STATE_DISCONNECTED){
//TODO:
}
}
} catch (Exception e) {
//TODO:
}
}
};
这会尝试在矢量中放置array.push_back(day);
的副本,这是不允许的,因为它是唯一的。
相反,你可以写day
但是以下会更好,取代array.push_back( std::move(day) );
:
auto day...
答案 1 :(得分:2)
删除protected $except = [
'/api/v1/list', //This route won't have CSRF protection
];
的复制构造函数。这导致了一个问题:
std::unique_ptr
使用
array.push_back(day);