CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): doldori (돌돌이)
날 짜 (Date): 2004년 9월 14일 화요일 오후 08시 32분 38초
제 목(Title): Re: C Macro 


inline / const 는 당연히 추천이지만,
template 은 까딱하면 디버깅이 불가능해지므로 비추. -_-!

--

이런 이유로 비추라고 하기는 좀... ^^; 매크로도 마찬가지 아닌가요?


const, inline, template으로 대체가 안되는 매크로의 예는 무수히 많아요.
말씀 하신 걸로 assert () macro같은걸 만들 수 있나요?

--

그러고 보니 token pasting은 매크로가 아니면 불가능하군요.

대체가 가능한 것은 매크로를 쓰지 말자는 뜻으로 이해해 주시면

좋겠습니다. 그러나 저러나 말씀하신 assert는 이런 식으로 하면

어떨라나요? (원글은 C였으나 은근슬쩍 C++로 바뀌었군요.)

template<typename T>
inline void Assert(const T& expr)
{
#if !defined(NDEBUG)
    expr || (output implementation-specific information);
#endif
}

표준의 요구사항을 만족하는 것은 아니지만 token pasting만 

제외하면 충분히 쓸 만하지 않습니까?
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.