0

次のコードはg++4.7.1でコンパイルされますが、clang3.1ではコンパイルされません。

struct A
{
  int foo();
};

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


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

clangはサポートしてい__restrictますか?または、特定の構文を使用していますか?

4

1 に答える 1

2

私はclang3.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.

の宣言を次のように変更すると、clang4.1は正常にコンパイルしますA::foo

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