#include <string>
#include <iostream>
#include <vector>
using namespace std;
class A
{
public :
A( ) { cout << "constructed " << ( void * ) this << "\n " ; }
A( const A& a) { cout << "copied " << ( void * ) ( & a) << " to " << ( void * ) this << "\n " ; }
A& operator = ( const A& a) { cout << "assigned " << ( void * ) ( & a) << " to " << ( void * ) this << "\n " ; }
~A( ) { cout << "destructor called for " << ( void * ) this << "\n " ; }
} ;
int main ( )
{
A one, two;
vector< A> vec;
cout << "push_back one" << endl;
vec.push_back ( one) ;
cout << "push_back two" << endl;
vec.push_back ( two) ;
//destructor gets called here
return 0 ;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEKewpwdWJsaWM6CiAgICBBKCkge2NvdXQgPDwgImNvbnN0cnVjdGVkICIgPDwgKHZvaWQqKXRoaXMgPDwgIlxuIjt9CiAgICBBKGNvbnN0IEEmIGEpIHtjb3V0IDw8ICJjb3BpZWQgIiA8PCAodm9pZCopKCZhKSA8PCAiIHRvICIgPDwgKHZvaWQqKXRoaXMgPDwgIlxuIjsgfQogICAgQSYgb3BlcmF0b3IgPShjb25zdCBBJiBhKSB7Y291dCA8PCAiYXNzaWduZWQgIiA8PCAodm9pZCopKCZhKSA8PCAiIHRvICIgPDwgKHZvaWQqKXRoaXMgPDwgIlxuIjsgfQogICAgfkEoKSB7IGNvdXQgPDwgImRlc3RydWN0b3IgY2FsbGVkIGZvciAiIDw8ICh2b2lkKil0aGlzIDw8ICJcbiI7IH0KfTsKCmludCBtYWluICgpCnsKICAgIEEgb25lLCB0d287CgogICAgdmVjdG9yPEE+IHZlYzsKICAgIGNvdXQgPDwgInB1c2hfYmFjayBvbmUiIDw8IGVuZGw7CiAgICB2ZWMucHVzaF9iYWNrKG9uZSk7CiAgICBjb3V0IDw8ICJwdXNoX2JhY2sgdHdvIiA8PCBlbmRsOwogICAgdmVjLnB1c2hfYmFjayh0d28pOwogICAgLy9kZXN0cnVjdG9yIGdldHMgY2FsbGVkIGhlcmUKICAgIHJldHVybiAwOwp9IA==