python에서 함수의 리턴 결과로 2개 이상의 리턴값을 줄 수 있다.
c++에서도 std::tie, std::tuple을 사용하여 2개 이상의 리턴값을 받을 수 있다.
#include <tuple>
#include <iostream>
std::tuple<int, int> sum_min(int a, int b)
{
return std::make_tuple(a + b, a - b);
}
void sume_func()
{
int sum;
int min;
std::tie(sum, min) = request_parse(1,1);
auto ret = request_parse(2,2);
// in c++17
// auto [sum, min] = request_parse(3,3);
};
여러 return 값이 필요할 때 struct를 리턴값으로 넘기거나 parameter를 reference로 사용할 필요가 없어졌다.
c++17 부터는 tie도 필요없이 auto [sum, min] 으로 대체가능하니 더 간단하게 사용 가능해진다.
'C,C++' 카테고리의 다른 글
[c++] namespace detail (0) | 2018.11.28 |
---|---|
[C/C++] 함수 포인터 (0) | 2015.09.16 |