직업 이야기/MFC
Define 매크로 쓰지 않기
유부프로그래머
2016. 5. 27. 17:09
The C++ Programming Language 에 비슷한 내용이 나와 있다.
정말 강추하는 책이다. 고수님 찾지 말고 이 책 보자. 창시자님이 쓴 책이니까. -_-;
// case 1 #define min(a,b) (((a) < (b)) ? (a) : (b)) |
// case 2 template<class T> inline const T& min(const T& v1, const T& v2) |
놀랍게도 사용방법은 똑같다.
int i=3, j=7, k=0; k = min(i,j); |
다만 1의 경우에는 언제 소스 바꿔치기를 시도할지 모른다.
define 속성상 같은 이름이라고 에러나는것이 아니라 이름을 바꿔치기하고
그 후에 대한 에러를 내뱉는다. 하지만 볼 수 있는 소스는 그 전의 소스라는것이다.
(define의 결점이다.)
2의 경우에는 자동으로 T 가 int로 바뀐다. (우와~~)
게다가 inline화가 성공했다면 define이나 오버해드는 같다.