728x90
#    define ATOMIC_ADD(type, var, val) ATOMIC_ADD_##type(var, val)

위 전처리문은 메타 프로그래밍 기법으로, 코드를 작성하는 코드이다.

ATOMIC_ADD(int, a, 5);
ATOMIC_ADD(float, b, 4.5);

위와 같이 선언할 시, 

 

ATOMIC_ADD(type, var, val)은 ATOMIC_ADD_##type(var,val) 로 정의되었으므로

각각

ATOMIC_ADD_int(a,5);

ATOMIC_ADD_float(b,4.5);

와 같이 정의된다.

 

이와 같은 메타 프로그래밍 기법은 코드의 유연성과 확장성을 높이며, 타입별 연산 함수와 같이 여러 버전이 필요할 경우 관리하기 편하게 만들어준다.

728x90

+ Recent posts