¿Cómo usar lambda para borrar celdas vectoriales vacías?

Tengo un vector:

std::vector<Edge> edges(num);

que contienen celdas vacías al final, que me gustaría eliminar usando lambda pero cuando lo hice:

edges.erase(std::remove_if(edges.begin(), edges.end(), 
                       std::mem_fn(&std::Edge::empty), edges.end() );

Tengo este error

error C2664: 'bool main::<lambda_6f33349b59d49f69703a5fa6a8c5995a>::operator ()(const std::vector<_Ty> &) const' : cannot convert parameter 1 from 'Edge' to 'const std::vector<_Ty> &'

¿Qué hago ahora?

Respuestas a la pregunta(1)

Su respuesta a la pregunta