SumatraPDF 개발자, 16년 만에 std::function 포기하고 자체 콜백 함수 제작

2025-06-15
SumatraPDF 개발자, 16년 만에 std::function 포기하고 자체 콜백 함수 제작

SumatraPDF 개발자는 16년간의 C++ 개발 경험을 바탕으로 디버깅의 어려움 때문에 std::function과 람다 표현식을 포기했습니다. 컴파일러가 자동으로 생성하는 람다 함수의 이름이 모호하여 크래시 보고서 분석이 어려웠기 때문입니다. 그래서 더 간단하고 이해하기 쉬운 사용자 정의 콜백 함수 Func0과 Func1을 만들었습니다. std::function만큼 기능이 풍부하지는 않지만 메모리 사용량과 컴파일 속도 면에서 큰 장점이 있으며 디버깅도 용이합니다. 이 글에서는 Func0과 Func1의 설계 및 구현 세부 정보와 이러한 접근 방식이 SumatraPDF에 적합한 이유를 설명합니다.

개발 콜백 함수