find_if
собирается передать элементы вектора в вашу лямбду. Это означает, что вам нужно
std::find_if(V.begin(), V.end(), [&Name](auto const& V) {return Name == V->info.name;})
так, что V
в теле лямбды является элементом вектора, а не самого вектора.
В идеале вы бы дали ему имя, отличное от V
, поэтому вы держите вектор и локальные переменные отдельно, как
std::find_if(V.begin(), V.end(), [&Name](auto const& element) {return Name == elememt->info.name;})
Итак, теперь ясно, что вы работаете с элементом вектора вместо самого вектора.