#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std::placeholders;
struct Foo {
bool condition;
};
int main()
{
std::vector<Foo> myVector = {{false}, {true}, {false}, {true}, {true}};
myVector.erase(
remove_if(myVector.begin(), myVector.end(), std::bind(&Foo::condition, _1))
, myVector.end());
for(auto i = myVector.begin(); i!=myVector.end(); ++i)
std::cout << std::boolalpha << i->condition << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOwpzdHJ1Y3QgRm9vIHsKICAgICAgICBib29sIGNvbmRpdGlvbjsKfTsKaW50IG1haW4oKQp7CiAgICAgICAgc3RkOjp2ZWN0b3I8Rm9vPiBteVZlY3RvciA9IHt7ZmFsc2V9LCB7dHJ1ZX0sIHtmYWxzZX0sIHt0cnVlfSwge3RydWV9fTsKCiAgICAgICAgbXlWZWN0b3IuZXJhc2UoCiAgICAgICAgICAgIHJlbW92ZV9pZihteVZlY3Rvci5iZWdpbigpLCBteVZlY3Rvci5lbmQoKSwgc3RkOjpiaW5kKCZGb286OmNvbmRpdGlvbiwgXzEpKQogICAgICAgICAgICAsIG15VmVjdG9yLmVuZCgpKTsKCiAgICAgICAgZm9yKGF1dG8gaSA9IG15VmVjdG9yLmJlZ2luKCk7IGkhPW15VmVjdG9yLmVuZCgpOyArK2kpCiAgICAgICAgICAgICAgICBzdGQ6OmNvdXQgPDwgc3RkOjpib29sYWxwaGEgPDwgaS0+Y29uZGl0aW9uIDw8ICdcbic7Cn0K