Поддерживает ли clang++ __restrict?

Следующий код компилируется с 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 ответ

Решение

У меня нет 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;
Другие вопросы по тегам