#include <memory>
#include <vector>
template < typename T>
struct holder
{
holder( ) = default ;
holder( const holder& b)
: t( b.t )
{
}
holder( holder&& b) = delete ;
holder& operator= ( const holder& b)
{
t = b.t ;
return * this ;
}
holder& operator= ( holder&& b) = delete ;
T t;
} ;
typedef holder< std:: unique_ptr < int >> ptr;
typedef std:: vector < ptr> vec;
typedef vec test_t;
test_t foo( ) ;
int main( )
{
test_t x = foo( ) ;
x = foo( ) ;
return 0 ;
}
I2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdHJ1Y3QgaG9sZGVyCnsKICAgIGhvbGRlcigpID0gZGVmYXVsdDsKCiAgICBob2xkZXIoY29uc3QgaG9sZGVyJiBiKQogICAgICAgIDogdChiLnQpCiAgICB7CiAgICB9CgogICAgaG9sZGVyKGhvbGRlciYmIGIpID0gZGVsZXRlOwoKICAgIGhvbGRlciYgb3BlcmF0b3I9KGNvbnN0IGhvbGRlciYgYikKICAgIHsKICAgICAgICB0ID0gYi50OwogICAgICAgIHJldHVybiAqdGhpczsKICAgIH0KCiAgICBob2xkZXImIG9wZXJhdG9yPShob2xkZXImJiBiKSA9IGRlbGV0ZTsKCiAgICBUIHQ7Cn07Cgp0eXBlZGVmIGhvbGRlcjxzdGQ6OnVuaXF1ZV9wdHI8aW50Pj4gcHRyOwoKdHlwZWRlZiBzdGQ6OnZlY3RvcjxwdHI+IHZlYzsKCnR5cGVkZWYgdmVjIHRlc3RfdDsKCnRlc3RfdCBmb28oKTsKCmludCBtYWluKCkKewogICAgdGVzdF90IHggPSBmb28oKTsKICAgIHggPSBmb28oKTsKICAgIHJldHVybiAwOwp9Cg==