#c #gcc #lambda
#c #gcc #лямбда
Вопрос:
У меня есть лямбда-выражение, объявленное в функции-члене вызываемого класса KoalaClass
. Компилятор предупреждает меня, что объявление ‘vertices_’ затеняет член ‘KoalaClass’. vertices_
является членом вызываемого класса KoalaClass
.
std::find_if(vertices_.begin(), vertices_.end(), [amp;sourceName, this](koalaGraph::PVertex constamp; vertices_) {return sourceName == vertices_->info.name;}
Может ли кто-нибудь объяснить, почему это происходит, и если я неправильно закодировал лямбда-выражение?
Комментарии:
1. Вероятно, вы хотите назвать параметр вашего лямбда-выражения как «vertex», а не «vertices_».
2. Ваш код будет работать, но, как правило, не рекомендуется иметь коллекцию и элемент этой коллекции с одинаковыми именами, поэтому я бы предложил прослушать предупреждение и изменить внутреннюю переменную.