clang ++是否支持__restrict?

时间:2012-10-06 02:58:19

标签: c++ gcc clang restrict-qualifier

以下代码使用g ++ 4.7.1进行编译,但不使用clang 3.1

进行编译
struct A
{
  int foo();
};

int A::foo() __restrict
{
  return 0;
}


int main(int argc, char * argv[])
{
  A a;
  return a.foo();
}

clang是否支持__restrict?还是使用特定的语法?

1 个答案:

答案 0 :(得分:2)

我没有clang 3.1方便,但在clang 4.1下,我收到了这个错误:

t.cpp:6:8: error: out-of-line definition of 'foo' does not match any declaration
      in 'A'
int A::foo() __restrict
       ^~~
t.cpp:3:7: note: member declaration nearly matches
  int foo();
      ^
1 error generated.
如果我将A::foo的声明更改为:

clang 4.1会成功编译它

  int foo() __restrict;