더북(TheBook)

array 컨테이너에서 n번째 원소에 접근하는 get<n>() 헬퍼 함수를 위한 함수 템플릿도 정의되어 있다. 템플릿 매개변수의 인수는 컴파일 타임에 평가될 수 있는 상수 표현식이어야 하므로 루프 변수로는 쓸 수 없다. 접근하는 원소가 템플릿 매개변수이면 컴파일 타임에 검사될 수 있어야 한다. get<n>() 템플릿은 런타임 검사 없이 인덱스 값으로 원소에 접근할 수 있다. 런타임 검사가 없으므로 인덱스 값이 범위를 벗어나서는 안 된다. get<n>()은 다음과 같이 사용하면 된다.

std::array<std::string, 5> words {“one”, “two”, “three”, “four”, “five”};
std::cout << std::get<3>(words) << std::endl; // words[3] 출력
std::cout << std::get<6>(words) << std::endl; // 컴파일러 에러 메시지!
 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.