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