#include <iostream>
auto fun()
{
int i = 1;
return i;
}
auto fun2()
{
enum Result : int { a, b, c };
Result e = a;
return e;
}
auto fun3()
{
struct st{ int m_a; int m_b; };
st t;
t.m_a = 1;
t.m_b = 2;
return t;
}
int main() {
// your code goes here
std::cout << fun() << std::endl;
auto e1 = fun2();
auto e2 = fun2();
std::cout << "e1 == e2 - " << (e1 == e2 ? "true" : "false") << std::endl;
std::cout << "e1 == b - " << (e1 == decltype(e1)::b ? "true" : "false") << std::endl;
auto t = fun3();
std::cout << "t.m_a = " << t.m_a << std::endl;
std::cout << "t.m_b = " << t.m_b << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKYXV0byBmdW4oKQp7CglpbnQgaSA9IDE7CglyZXR1cm4gaTsKfQoKYXV0byBmdW4yKCkKewoJZW51bSBSZXN1bHQgOiBpbnQgeyBhLCBiLCBjIH07CglSZXN1bHQgZSA9IGE7CglyZXR1cm4gZTsKfQoKCmF1dG8gZnVuMygpCnsKCXN0cnVjdCBzdHsgaW50IG1fYTsgaW50IG1fYjsgfTsKCXN0IHQ7Cgl0Lm1fYSA9IDE7Cgl0Lm1fYiA9IDI7CgkKCXJldHVybiB0Owp9CgoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkKCXN0ZDo6Y291dCA8PCBmdW4oKSA8PCBzdGQ6OmVuZGw7CgkKCWF1dG8gZTEgPSBmdW4yKCk7CglhdXRvIGUyID0gZnVuMigpOwoJCglzdGQ6OmNvdXQgPDwgImUxID09IGUyIC0gIiA8PCAoZTEgPT0gZTIgPyAidHJ1ZSIgOiAiZmFsc2UiKSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgImUxID09IGIgLSAiIDw8IChlMSA9PSBkZWNsdHlwZShlMSk6OmIgPyAidHJ1ZSIgOiAiZmFsc2UiKSA8PCBzdGQ6OmVuZGw7CgoJYXV0byB0ID0gZnVuMygpOwoJCglzdGQ6OmNvdXQgPDwgInQubV9hID0gIiA8PCB0Lm1fYSA8PCBzdGQ6OmVuZGw7CglzdGQ6OmNvdXQgPDwgInQubV9iID0gIiA8PCB0Lm1fYiA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQo=