#include <iostream>
using namespace std;
struct solution {
int &x1, &x2;
};
solution foo () { // blad - zwracanie referencji do zmiennych lokalnych!
int x1 = 1, x2 = 9;
return {x1, x2};
}
//------------------
struct solution2 {
int x1, x2;
};
const solution2 bar () { // (return value optymalization / copy elision)
int x1 = 1, x2 = 9;
return {x1, x2};
}
int main() {
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHNvbHV0aW9uIHsKCWludCAmeDEsICZ4MjsKfTsKCnNvbHV0aW9uIGZvbyAoKSB7IC8vIGJsYWQgLSB6d3JhY2FuaWUgcmVmZXJlbmNqaSBkbyB6bWllbm55Y2ggbG9rYWxueWNoIQoJaW50IHgxID0gMSwgeDIgPSA5OwoJcmV0dXJuIHt4MSwgeDJ9Owp9CgovLy0tLS0tLS0tLS0tLS0tLS0tLQoKc3RydWN0IHNvbHV0aW9uMiB7CglpbnQgeDEsIHgyOwp9OwoKY29uc3Qgc29sdXRpb24yIGJhciAoKSB7IC8vIChyZXR1cm4gdmFsdWUgb3B0eW1hbGl6YXRpb24gLyBjb3B5IGVsaXNpb24pCglpbnQgeDEgPSAxLCB4MiA9IDk7CglyZXR1cm4ge3gxLCB4Mn07Cn0KCmludCBtYWluKCkgewoJcmV0dXJuIDA7Cn0=