最佳答案
我尝试跟随 这个例子使用带 remove_if
的 lambda。下面是我的尝试:
int flagId = _ChildToRemove->getId();
auto new_end = std::remove_if(m_FinalFlagsVec.begin(), m_FinalFlagsVec.end(),
[](Flag& device) {
return device.getId() == flagId;
});
m_FinalFlagsVec.erase(new_end, m_FinalFlagsVec.end());
但编译失败:
error C3493: 'flagId' cannot be implicitly captured because no default capture mode has been specified
如何在 lambda 表达式中包含外部参数 flagId
?