2013-08-12 4 views
1

: "가변 인자의 제로 인수 매크로 및 쉼표", 나는 시도 :C++ 가변 인자 매크로를 컴파일 유래 질문을 다음과 같은 오류

#define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ > 

MAKE_TEMPLATE() 
struct Testing{}; 

컴파일러가 제공 : 오류 : 예상 식별자 '>'토큰

전에

그러나 g ++ -E MAIN.CPP (매크로 확장을 얻을 수 있습니다) 쇼 :

template <typename T > 
struct Testing{}; 

함께 :

MAKE_TEMPLATE(typename U) 
struct Testing{}; 

컴파일이 완료되었습니다. 무엇이 누락 되었습니까?

+0

그러나 GCC 문서 : 변수 인수가 생략되거나 비어있는 경우 가 "는 '##'연산자 제거 전처리 원인 GCC는 다음 (비 휴대용) 확장을 지원 그 앞에 쉼표 " – Patric

답변