이의이Stringize __VA_ARGS__ (C++ 가변 인자 매크로)
class Item{
public:
Item(int id,const char *name,const char *props=NULL);
};
보자 내가 쓰고 싶은 : 매크로
#define ITEM(ID,NAME,...) new Item(ID,NAME, #__VA_ARGS__)
와
ITEM(1,FIRST);
ITEM(2,SECOND, WithSomeProps);
#__VA_ARGS__
gcc가 잘 컴파일하지만 준다 VStudio에서 오류가 발생했습니다. 견고하고 휴대 가능한 솔루션이 있습니까?
ITEM
의 #definitions를 여러 번 사용하여 .h 파일에 ITEM()
콜렉션을 갖고 싶습니다.
왜이 방법을 사용 하시겠습니까? 아이템 (ID, NAME, OTHER_ARGS)'? –
왜 이것을 필요로합니까? 생성자의 세 번째 입력 인수가 기본값이므로 'Item (1, FIRST)'및 (Item, 2, SECOND, WithSomeProps)를 호출 할 수 있습니다. – 101010
왜 매크로 뒤에 야생의'new'가 숨겨져 있습니까? – Shoe