Boost::preprocessor 로 템플릿 코드 생성

어제 일종의 지연된 함수 호출 클래스 구현에 관해서 포스팅을 했다. (제한된 Closure라기보단 이 쪽 의미에 가까운 것 같다) 거기에다가 "뭔가 인자 수에 따라 다 정의해야 하는 것을 피할 방법이 없는가?" 라고 썼었는데, Boost 라이브러리에 있는 매크로 메타프로그래밍 라이브러리인 Boost::PP를 소개 받았다. 일단 boost::preprocessor를 사용해서 구현한 코드는 다음과 같다. #define ClosureMemberDecl( z, n, unused ) A##n […]

C++기반의 closure

요즘 하고 있는 일 중에 굉장히 제한적으로 사용되는 closure를 구현할 일이 생겼다 — 물론 C++ 기반이다. Python기반이면 이런 걱정은 안해도. Orz Closure를 정의하자면, (from wikiepdia) In computer science, a closure is a function that is evaluated in an environment containing one or more bound variables. 이런 애가 되는데, 좀 더 내가 필요로하는 응용에서 생각하면(내 멋대로), […]