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 宏的方法。