[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