我正在更新性能关键库以使用restrict
,正如使用g ++和MSVC在C ++ 11中使用关键字__restrict
实现的那样。
有许多例程和函数看起来像:
void f(float a[],float b[]);
在上面的例子中,f
是一个应该限制其参数的例程。不幸的是,据我所知,这在维护语法时是不可能的。现在,显然可以使用指针重写:
void f(float*__restrict a,float*__restrict b);
这里丢失的是a
和b
是数组的语义事实(我更喜欢使用指针符号表示单值指针,数组符号表示数组指针)。描述性的参数名称(上面省略)有帮助,但只有这么多。
我想确认这些编译器目前无法使用数组语法声明受限变量。