Наконец-то можно возвращать структуры определённые внутри, а не вне функции:
#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()
{
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;
}
ideone