#include <iostream>
using std:: cerr ;
class A
{
public :
A( ) { cerr << "A::A()\n " ; }
A( const A & ) { cerr << "A::A(const A&)\n " ; }
A( A && ) { cerr << "A::A(A&&)\n " ; }
A( const A && ) = delete ;
A & operator = ( const A & ) { cerr << "A::operator=(const A&)\n " ; return * this ; }
A & operator = ( A && ) { cerr << "A::operator(A&&)\n " ; return * this ; }
A & operator = ( const A && ) = delete ;
~A( ) { cerr << "A::~A()\n " ; }
const A get( ) const { cerr << "const A A::get() const\n " ; return A( ) ; }
A get( ) { cerr << "A A::get()\n " ; return A( ) ; }
} ;
int main( )
{
const A a;
A b = a.get ( ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgc3RkOjpjZXJyOwoKY2xhc3MgQQp7CnB1YmxpYzoKICAgIEEoKSB7IGNlcnIgPDwgIkE6OkEoKVxuIjsgfQogICAgQShjb25zdCBBICYpIHsgY2VyciA8PCAiQTo6QShjb25zdCBBJilcbiI7IH0KICAgIEEoQSAmJikgeyBjZXJyIDw8ICJBOjpBKEEmJilcbiI7IH0KICAgIEEoY29uc3QgQSAmJikgPSBkZWxldGU7CiAgICBBICYgb3BlcmF0b3IgPSAoY29uc3QgQSAmKSB7IGNlcnIgPDwgIkE6Om9wZXJhdG9yPShjb25zdCBBJilcbiI7IHJldHVybiAqdGhpczsgfQogICAgQSAmIG9wZXJhdG9yID0gKEEgJiYpIHsgY2VyciA8PCAiQTo6b3BlcmF0b3IoQSYmKVxuIjsgcmV0dXJuICp0aGlzOyB9CiAgICBBICYgb3BlcmF0b3IgPSAoY29uc3QgQSAmJikgPSBkZWxldGU7CiAgICB+QSgpIHsgY2VyciA8PCAiQTo6fkEoKVxuIjsgfQoKICAgIGNvbnN0IEEgZ2V0KCkgY29uc3QgeyBjZXJyIDw8ICJjb25zdCBBIEE6OmdldCgpIGNvbnN0XG4iOyByZXR1cm4gQSgpOyB9CiAgICBBIGdldCgpIHsgY2VyciA8PCAiQSBBOjpnZXQoKVxuIjsgcmV0dXJuIEEoKTsgfQp9OwoKaW50IG1haW4oKQp7CiAgICBjb25zdCBBIGE7CiAgICBBIGIgPSBhLmdldCgpOwp9