나는 전에 C에서 템플릿 을 구현하는 다음과 같은 방법을 본 적이 없다고 생각합니다. 내 생각은 templating-work에 Preprocessor를 만드는 것이 었습니다.C에서 전처리기를 사용하여 템플릿을 작성
container.h :
#ifndef TEMPLATE_TYPE
#error "missing decalaration TEMPLATE_TYPE"
#endif
#define _CONCAT(a, b) a##b
#define _EVALUATOR(a, b) _CONCAT(a, b)
#define MAKE_NAME(a, b) _EVALUATOR(a, b)
typedef struct {
TEMPLATE_TYPE data;
} MAKE_NAME(Container_, TEMPLATE_TYPE);
main.c를 :
#define TEMPLATE_TYPE int
#include "container.h"
int main() {
Container_int c;
c.data = 99923;
}
그래서, 사건은 무엇입니까?
- 이 단지 생각된다 "나쁜 스타일"그것은 아무도는
- 기사 많이 있습니다, 단지 사람이 구글에 대한 기사를 쓸 것이 너무 명백
- !
을 # 3으로 대답하지 않으려는 경우이 기술에 대한 의견을 보내 주시면 감사하겠습니다.
전에 이런 일은 본 적이 없습니까? – Dave
구문 설탕은 세미콜론의 암을 유발합니다 ... –
이 질문은 [http://codereview.stackexchange.com/](http://codereview.stackexchange.com/)에 속한 것 같습니다. –