在为更好地(更一致)地使用“现代C ++”而移植C ++代码的过程中,我最近的一轮更改涉及将typedef int32_t I2Arr[2]
别名替换为更现代的using I2Arr = int32_t[2]
样式。这对于“简单”(标量)类型很好用,并且对于定义函数指针特别有用:
using IFunc = int32_t(*)(int32_t, int32_t);
看起来比(IMHO)更清晰:
typedef int32_t(IFunc*)(int32_t, int32_t);
但是,我只是为替换typedef
实际的函数原型(而不是指向函数的指针)而陷入了困境。例如,我有以下代码,使用“旧样式”:
typedef int32_t MaskMaker(int32_t, const uint8_t *, uint8_t *);
static MaskMaker *maskMakers[maskNum];
现在,也许(可能)我在这里真的很昏暗,但是我想不出一种将其转换using
为别名样式的方法。谁能告诉我该怎么做?
using MaskMaker = int32_t(int32_t, const uint8_t *, uint8_t *);
就是这样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句