#include <iostream>
int f()
{
int a = 5;
return a;
}
int& g()
{
int a = 5;
return a;
}
int&& h()
{
return 5;
}
int&& i()
{
int a = 5;
return std::move(a);
}
int main()
{
int l {f()};
// int& rl {f()};
const int& crl {f()};
int r {std::move(f())};
int&& rr {std::move(f())};
std::cout << "kopia " << l << " " << crl << " " << r << " " << rr << std::endl;
int l2 {g()};
int& rl2 {g()};
const int& crl2 {g()};
int r2 {std::move(g())};
int&& rr2 {std::move(g())};
std::cout << "referencja " << l2 << " " << rl2 << " " << crl2 << " " << r2 << " " << rr2 << std::endl;
int l3 {h()};
// int& rl3 {h()};
const int& crl3 {h()};
int r3 {std::move(h())};
int&& rr3 {std::move(h())};
std::cout << "u_referencja " << l3 << " " << crl3 << " " << r3 << " " << rr3 << std::endl;
int l4 {i()};
// int& rl4 {i()};
const int& crl4 {i()};
int r4 {i()};
int&& rr4 {i()};
std::cout << "u_referencja2 " << l4 << " " << crl4 << " " << r4 << " " << rr4 << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IGYoKQp7CglpbnQgYSA9IDU7CglyZXR1cm4gYTsKfQoKaW50JiBnKCkKewoJaW50IGEgPSA1OwoJcmV0dXJuIGE7Cn0KCmludCYmIGgoKQp7CglyZXR1cm4gNTsKfQoKaW50JiYgaSgpCnsKICAgIGludCBhID0gNTsKCXJldHVybiBzdGQ6Om1vdmUoYSk7Cn0KCmludCBtYWluKCkKewoJaW50IGwgICAgICAgICAgIHtmKCl9OwovLwlpbnQmIHJsICAgICAgICAge2YoKX07Cgljb25zdCBpbnQmIGNybCAge2YoKX07CglpbnQgciAgICAgICAgICAge3N0ZDo6bW92ZShmKCkpfTsKCWludCYmIHJyICAgICAgICB7c3RkOjptb3ZlKGYoKSl9OwoKCXN0ZDo6Y291dCA8PCAia29waWEgIiA8PCBsIDw8ICIgIiA8PCBjcmwgPDwgIiAiIDw8IHIgPDwgIiAiIDw8IHJyIDw8IHN0ZDo6ZW5kbDsKCglpbnQgbDIgICAgICAgICAge2coKX07CglpbnQmIHJsMiAgICAgICAge2coKX07Cgljb25zdCBpbnQmIGNybDIge2coKX07CglpbnQgcjIgICAgICAgICAge3N0ZDo6bW92ZShnKCkpfTsKCWludCYmIHJyMiAgICAgICB7c3RkOjptb3ZlKGcoKSl9OwoKCXN0ZDo6Y291dCA8PCAicmVmZXJlbmNqYSAiIDw8IGwyIDw8ICIgIiA8PCBybDIgPDwgIiAiIDw8IGNybDIgPDwgIiAiIDw8IHIyIDw8ICIgIiA8PCBycjIgPDwgc3RkOjplbmRsOwoKCWludCBsMyAgICAgICAgICB7aCgpfTsKLy8JaW50JiBybDMgICAgICAgIHtoKCl9OwoJY29uc3QgaW50JiBjcmwzIHtoKCl9OwoJaW50IHIzICAgICAgICAgIHtzdGQ6Om1vdmUoaCgpKX07CglpbnQmJiBycjMgICAgICAge3N0ZDo6bW92ZShoKCkpfTsKCglzdGQ6OmNvdXQgPDwgInVfcmVmZXJlbmNqYSAiIDw8IGwzIDw8ICIgIiA8PCBjcmwzIDw8ICIgIiA8PCByMyA8PCAiICIgPDwgcnIzIDw8IHN0ZDo6ZW5kbDsKCglpbnQgbDQgICAgICAgICAge2koKX07Ci8vCWludCYgcmw0ICAgICAgICB7aSgpfTsKCWNvbnN0IGludCYgY3JsNCB7aSgpfTsKCWludCByNCAgICAgICAgICB7aSgpfTsKCWludCYmIHJyNCAgICAgICB7aSgpfTsKCglzdGQ6OmNvdXQgPDwgInVfcmVmZXJlbmNqYTIgIiA8PCBsNCA8PCAiICIgPDwgY3JsNCA8PCAiICIgPDwgcjQgPDwgIiAiIDw8IHJyNCA8PCBzdGQ6OmVuZGw7CgoJcmV0dXJuIDA7Cn0=