lazyevaluation1 C++20 코루틴으로 직접 구현하는 Generator C++20 코루틴은 함수의 실행을 일시 중단하고 필요할 때 다시 재개할 수 있는 기능을 제공한다. 이를 활용하면 값을 하나씩 순차적으로 생성하는 Generator를 직접 구현할 수 있다. 이번 글에서는 Generator가 왜 필요한지, 어떤 원리로 동작하는지, promise_type과 co_yield가 어떻게 연관되는지를 자세히 다루겠다. 기존 반복자나 컨테이너 기반 접근 방식에는 몇 가지 한계가 있다. 먼저 모든 데이터를 한 번에 메모리에 올려야 하므로 메모리 효율이 떨어진다. 또한 피보나치 수열과 같은 무한 시퀀스를 구현하기 어렵다. 반복자를 직접 구현할 때는 operator++, operator*, end() 등을 일일이 정의해야 하므로 코드가 복잡해지고 유지보수가 어려워진다. Generator는 .. 2025. 9. 3. 이전 1 다음