[c++] 폴드 표현식
폴드 표현식은 다음과 같은 형태를 가집니다:
(일관적인_표현식 op ... op (일관적인_표현식 op (일관적인_표현식 op (일관적인_표현식 초기값) ...)))
여기서 op
는 이항 연산자이고, 일관적인_표현식
은 폴드 연산을 수행할 값들을 나타냅니다.
아래는 예시입니다.
#include <iostream>
#include <utility>
template <typename... Args>
auto sum(Args... args) {
return (args + ...); // 폴드 표현식
}
int main() {
std::cout << sum(1, 2, 3, 4, 5) << std::endl; // 출력: 15
return 0;
}
sum
함수에서 사용된 (args + ...)
는 폴드 표현식으로, 모든 args
값을 더해 리턴합니다.
폴드 표현식은 C++17에서 좀 더 강화되었으며, 변수 초기화, 비트 연산 및 다양한 유형의 폴드 작업을 지원합니다.
더 많은 정보는 C++ 참조 문서에서 확인할 수 있습니다. Standard C++ Library Reference - Fold Expressions