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 マクロを使用する方法を見つけたかどうかに興味があります。