0
我需要從代碼中的某個點開始處於活動狀態,直到某個任務開始執行。 就像例如:傳遞std :: shared_ptr作爲lambda捕獲列表(C++)的引用
shared_ptr<FromThisPointToTaskStart> ftptts = make_shared<FromThisPointToTaskStart>();
. . .
runningTask.then([ftptts](task<void> task)
{
. . .
try{
// Decrementing reference and deallocating object if ref count == 0;
ftptts = nullptr;
task.get();
}
}
// decrementing reference count so that it lives untill task starts
ftptts = nullptr;
的問題是,捕獲列表捕獲這個恆定,我不能改變它。 什麼是正確的方式做我想要的?我應該像[& ftptts]那樣通過它嗎?
謝謝!
製作的λ可變](http://en.cppreference.com/w/cpp/language/lambda)應該得到你正在尋找的行爲。 –
如果我在捕獲列表中有多個參數會怎麼樣,我將如何使這一個變得可變而不是其他? –
@ J.Doe這似乎有一些信息:https://stackoverflow.com/questions/3772867/lambda-capture-as-const-reference – Galik