[trick] C++14 return unnamed structure
От: B0FEE664  
Дата: 08.10.15 10:02
Оценка: 40 (6)
Наконец-то можно возвращать структуры определённые внутри, а не вне функции:
#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
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.