VS2012支持使用CTP的可变参数模板,但如果我只是使用宏,有没有办法确定参数的数量?例如,假设宏看起来像这样:
#define _ALLOC_MEMBER_CONSTRUCT( \
TEMPLATE_LIST, PADDING_LIST, LIST, COMMA, CALL_OPT, X2, X3, X4) \
template<class _Objty COMMA LIST(_CLASS_TYPE)> \
void ConstructSelector(_Objty *_Ptr COMMA LIST(_TYPE_REFREF_ARG)) \
{ \
BaseClass::construct(_Ptr, LIST(_FORWARD_ARG), /* NUM OF ARGS*/); \
}
_VARIADIC_EXPAND_0X(_ALLOC_MEMBER_CONSTRUCT, , , , )
#undef _ALLOC_MEMBER_CONSTRUCT
有没有办法确定最后一个参数的参数个数?当我查看xstddef.h(定义了宏)时,看起来没有简单的方法。如果有人找到MS宏的方法,我很好奇。