#include <utility>
#include <cstddef>
#include <iostream>
using std::size_t;
template<class T>
std::remove_cv_t<T> copy(T& t) {
return t;
}
template<class T>
void copy(T&&)=delete; // block rvalue copy
template<class T, size_t N>
void copy(T(&)[N]) = delete; // we can implement this if we want: see below
int main() {
int x = 0;
auto f = [&]() mutable {
auto y = copy(x);
std::cout << y << "\n";
};
f();
}
I2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxjc3RkZGVmPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp1c2luZyBzdGQ6OnNpemVfdDsKCnRlbXBsYXRlPGNsYXNzIFQ+CnN0ZDo6cmVtb3ZlX2N2X3Q8VD4gY29weShUJiB0KSB7CiAgcmV0dXJuIHQ7Cn0KdGVtcGxhdGU8Y2xhc3MgVD4Kdm9pZCBjb3B5KFQmJik9ZGVsZXRlOyAvLyBibG9jayBydmFsdWUgY29weQp0ZW1wbGF0ZTxjbGFzcyBULCBzaXplX3QgTj4Kdm9pZCBjb3B5KFQoJilbTl0pID0gZGVsZXRlOyAvLyB3ZSBjYW4gaW1wbGVtZW50IHRoaXMgaWYgd2Ugd2FudDogc2VlIGJlbG93CgppbnQgbWFpbigpIHsKICAgIGludCB4ID0gMDsKICAgIGF1dG8gZiA9IFsmXSgpIG11dGFibGUgewogICAgICAgIGF1dG8geSA9IGNvcHkoeCk7CiAgICAgICAgc3RkOjpjb3V0IDw8IHkgPDwgIlxuIjsKICAgIH07CiAgICBmKCk7Cn0=