C,C++

std::tie, std::tuple

shepherd.dev 2019. 8. 4. 00:01

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