CREATE_FUNCマクロを少しだけ改造。
initの引数を好きに宣言できます。
それ以外はCREATE_FUNCとまったく同じ使い方です。
(できるだけ元のCREATE_FUNCのコードを使っています)
マクロ名はお好きに変えてください。
#define CREATE_FUNC_ARGS(__TYPE__) \
template<class... Args> \
static __TYPE__* create(Args&&... args) \
{ \
__TYPE__ *pRet = new(std::nothrow) __TYPE__(); \
if (pRet && pRet->init(std::forward<Args>(args)...)) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}