Adr*_*ica 2 c++ alias typedef using
在努力将C ++代码移植到更好(更一致)的“现代C ++”使用中,我最近的一轮更改涉及将typedef int32_t I2Arr[2]别名替换为更现代的using I2Arr = int32_t[2]样式。这对于“简单”(标量)类型很好用,对于定义函数指针特别有用:
using IFunc = int32_t(*)(int32_t, int32_t);
Run Code Online (Sandbox Code Playgroud)
看起来比(IMHO)更清晰:
typedef int32_t(IFunc*)(int32_t, int32_t);
Run Code Online (Sandbox Code Playgroud)
但是,我只是为替换typedef实际的函数原型(而不是指向函数的指针)而陷入了困境。例如,我有以下代码,使用“旧样式”:
typedef int32_t MaskMaker(int32_t, const uint8_t *, uint8_t *);
static MaskMaker *maskMakers[maskNum];
Run Code Online (Sandbox Code Playgroud)
现在,也许(可能)我在这里真的很昏暗,但是我无法找到一种将其转换using为别名样式的方法。谁能告诉我该怎么做?
using MaskMaker = int32_t(int32_t, const uint8_t *, uint8_t *);
Run Code Online (Sandbox Code Playgroud)
就是这样。