#include <iostream>
#include <list>
using namespace std;
class Test {
public :
Test( )
{
cout << "Test hello" << endl;
}
~Test( )
{
cout << "Test bye" << endl;
}
Test( const Test& )
{
cout << "Test copy" << endl;
}
bool operator == ( const Test& ) const
{
return true ;
}
} ;
int main( )
{
Test a, b, c;
list< Test> lst{ a,b,c } ;
cout << "\n list size 1: " << lst.size ( ) << endl;
lst.remove ( Test( ) ) ;
cout << "\n list size 2: " << lst.size ( ) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIFRlc3QgewogICAgCnB1YmxpYzoKICAgIFRlc3QoKQogICAgewogICAgICAgIGNvdXQgPDwgIlRlc3QgaGVsbG8iIDw8IGVuZGw7CiAgICB9CgogICAgflRlc3QoKSAKICAgIHsKICAgICAgICBjb3V0IDw8ICJUZXN0IGJ5ZSIgPDwgZW5kbDsKICAgIH0KICAgIAogICAgVGVzdChjb25zdCBUZXN0JikKICAgIHsKICAgICAgICBjb3V0IDw8ICJUZXN0IGNvcHkiIDw8IGVuZGw7CiAgICB9CgogICAgCiAgICBib29sIG9wZXJhdG9yID09KGNvbnN0IFRlc3QmKSBjb25zdAogICAgewogICAgCXJldHVybiB0cnVlOwogICAgfQp9OwoKaW50IG1haW4oKQp7ClRlc3QgYSwgYiwgYzsKICAgbGlzdDxUZXN0PiBsc3R7IGEsYixjIH07CiAgIGNvdXQgPDwgIlxubGlzdCBzaXplIDE6ICIgPDwgbHN0LnNpemUoKSA8PCBlbmRsOwogICBsc3QucmVtb3ZlKFRlc3QoKSk7CiAgIGNvdXQgPDwgIlxubGlzdCBzaXplIDI6ICIgPDwgbHN0LnNpemUoKSA8PCBlbmRsOwp9Cg==