0

以下代码使用 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();
}

铿锵支持__restrict吗?还是使用特定的语法?

4

1 回答 1

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.

如果我将声明更改为以下内容,clang 4.1 将成功编译它A::foo

  int foo() __restrict;
于 2012-10-06T03:02:38.370 回答