diff --git a/net/virtio.cc b/net/virtio.cc index dcb1b0be5b..3783ea5870 100644 --- a/net/virtio.cc +++ b/net/virtio.cc @@ -271,7 +271,10 @@ void vring::run() { template void vring::post(Iterator begin, Iterator end) { - std::for_each(begin, end, [&] (buffer_chain& bc) { + // Note: buffer_chain here is any container of buffer, not + // necessarily vector. + using buffer_chain = decltype(*begin); + std::for_each(begin, end, [this] (buffer_chain bc) { bool has_prev = false; unsigned prev_desc_idx = 0; for (auto i = bc.rbegin(); i != bc.rend(); ++i) {