구조적 바인딩

Kclient·2022년 10월 19일
0

C++

목록 보기
1/2

C++ 17에서 추가된 기능으로 구조적 바인딩이란 개념이 추가됐다고 한다.

이것을 이용하면 여러개의 변수를 선언 할 때 배열, 구조체, 페어 혹은 튜플의 값으로 초기화 할 수 있다고 한다.


적용 방법은 auto 키워드와 [ ] 대괄호 사이에 변수명을 적고 오른쪽에 값을 넣어주면 된다.

array<int, 3> value = {1, 2, 3};
auto [x, y, z] = value;

다만 유의할 점은 무조건 auto 키워드를 사용해야 한다는 것과 왼쪽에 선언한 변수의 개수와 오른쪽에 표현식의 값 개수가 일치해야 한다는 것이다.

구조적 바인딩은 배열 뿐 아니라 모든 멤버가 non-static 이면서 public으로 선언된 데이터 구조라면 어떤 것도 적용 할 수 있다고 한다. (예를 들면 struct, pair, tuple)

struct에 구조적 바인딩을 사용한 예시

struct Point {
	double a, b;
	int c;
};

int main() {
	Point p = {1, 2, 3};
	auto [x, y, z] = p;
}

pair과 tuple은 내가 더 공부해보고 추후 더 자세히 적어보는 것으로 하겠다.

profile
뭐든 손에 잡히는 대로 해보자

0개의 댓글