#include <iostream>
#include <list>
#include <string>
struct A {
std::string name_;
A(const char* name) : name_(name) {}
};
void dump(const std::list<A>& list) {
for (auto&& a : list) {
std::cout << a.name_ << ' ';
}
std::cout << '\n';
}
int main() {
std::list<A> myList { { "hello", "pizza", "world", "pizza" } };
dump(myList);
const std::string name = "pizza";
myList.remove_if([&](const A& it){ return it.name_ == name; });
dump(myList);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPHN0cmluZz4KCnN0cnVjdCBBIHsKCXN0ZDo6c3RyaW5nIG5hbWVfOwoJQShjb25zdCBjaGFyKiBuYW1lKSA6IG5hbWVfKG5hbWUpIHt9Cn07Cgp2b2lkIGR1bXAoY29uc3Qgc3RkOjpsaXN0PEE+JiBsaXN0KSB7Cglmb3IgKGF1dG8mJiBhIDogbGlzdCkgewoJCXN0ZDo6Y291dCA8PCBhLm5hbWVfIDw8ICcgJzsKCX0KCXN0ZDo6Y291dCA8PCAnXG4nOwp9CgppbnQgbWFpbigpIHsKCXN0ZDo6bGlzdDxBPiBteUxpc3QgeyB7ICJoZWxsbyIsICJwaXp6YSIsICJ3b3JsZCIsICJwaXp6YSIgfSB9OwoJZHVtcChteUxpc3QpOwoJY29uc3Qgc3RkOjpzdHJpbmcgbmFtZSA9ICJwaXp6YSI7CglteUxpc3QucmVtb3ZlX2lmKFsmXShjb25zdCBBJiBpdCl7IHJldHVybiBpdC5uYW1lXyA9PSBuYW1lOyB9KTsKCWR1bXAobXlMaXN0KTsKCXJldHVybiAwOwp9