C++ __限制在g++;和带有数组语法的MSVC

C++ __限制在g++;和带有数组语法的MSVC,c++,restrict,restrict-qualifier,C++,Restrict,Restrict Qualifier,我正在更新性能关键库以使用restrict,正如g++和MSVC在C++11中用关键字\uu restrict实现的那样 有许多例程和函数看起来像: void f(float a[],float b[]); 在上面的示例中,f是一个例程,其参数应该受到限制。不幸的是,据我所知,在保持这种语法的同时,这是不可能的。现在,很明显,这可以使用指针重写,如下所示: void f(float*__restrict a,float*__restrict b); 这里丢失的是语义事实,a和b是数组(我更喜

我正在更新性能关键库以使用
restrict
,正如g++和MSVC在C++11中用关键字
\uu restrict
实现的那样

有许多例程和函数看起来像:

void f(float a[],float b[]);
在上面的示例中,
f
是一个例程,其参数应该受到限制。不幸的是,据我所知,在保持这种语法的同时,这是不可能的。现在,很明显,这可以使用指针重写,如下所示:

void f(float*__restrict a,float*__restrict b);
这里丢失的是语义事实,
a
b
是数组(我更喜欢对单值指针使用指针表示法,对数组指针使用数组表示法)。描述性参数名称(上面省略)有帮助,但仅此而已


我想确认,目前这些编译器不可能使用数组语法声明受限变量。

您仍然可以使用
using float_array=float[]然后
无效f(浮点数组限制a,浮点数组限制b)@Jarod42谢谢你这么说;不幸的是,对我来说太笨拙了。