在我正在编码的程序中,我的一个函数声明如下所示:
bool parse( const sentence & __restrict sentence )
{
// whatever
}
当我使用 Microsoft Visual Studio 2010 Express 编译代码时,编译器会抱怨:
警告 C4227:使用不合时宜:忽略引用的限定符
但是,GCC 文档的这一页说:
除了允许使用受限指针之外,您还可以指定受限引用,这表明该引用在本地上下文中没有别名。
同一页给出了一个非常明确的例子:
void fn (int *__restrict__ rptr, int &__restrict__ rref)
{
/* ... */
}
我误解了 MVSC 的警告吗?还是应该将所有引用转换为指针以便__restrict
适用?