250x250
Notice
Recent Posts
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

일상 코딩

[C++/CPP] 19.02 여러개 값 반환 함수, multi return function 본문

C++/따배C++ 19강 모던 C++ 기능들

[C++/CPP] 19.02 여러개 값 반환 함수, multi return function

polarcompass 2021. 12. 11. 06:51
728x90
#include<iostream>
#include<tuple>
#include<vector>

using namespace std;

tuple<int,int> my_func()
{
    return tuple<int,int>(123,456);
}

auto my_func2()
{
    return tuple(123,456,789,10);
}

int main(int argc, char const *argv[])
{
    // tuple<int,int> result = my_func();
    // cout << get<0>(result) << " " << get<1>(result) << " " << get<2>(result) << endl;

    auto [a,b,c,d] = my_func2();
    // cout << a << " " << b << " " << c << " " << d << endl;

    vector<int> v;
    // v.push_back(a);
    // v.push_back(b);
    // v.push_back(c);
    // v.push_back(d);

    // for( auto e : my_func2)
    //     v.push_back(e);
    
    // 튜플을 통한 다중 반환값을 iterable로 받는 방법
    std::tuple t{42, 'a', 4.2}; // Another C++17 feature: class template argument deduction
    std::apply([](auto&&... args) {((std::cout << args << '\n'), ...);}, t);

    for(auto e : v)
        cout << e << " ";
    cout << endl;

    return 0;
}
728x90