Ошибка компилятора, связанная с ключевым словом restrict

Возможный дубликат:
Что означает ограничить среднее значение ключевого слова в C ++?

Я пытаюсь установить QMCPACK в OS X 10.8.2 и получаю много таких ошибок:

bspline_base.h:95:17: error: expected ';' at end of declaration list
void *restrict coefs;
              ^
              ;

Я не знаком с ключевым словом restrict, но чувствую, что это может быть проблема другого рода, потому что это популярный код, который компилируется для других людей.

Вот полный контекст этого кода:

typedef struct
{
  spline_code sp_code;
  type_code   t_code;
  void *restrict coefs;
} Bspline;

person Nick    schedule 13.01.2013    source источник
comment
Об ограничении см. stackoverflow.com/questions/776283/. Это не ключевое слово языка C ++ (который вы пометили), как указывает первый ответ.   -  person Daniel Daranas    schedule 14.01.2013


Ответы (2)


restrict не является ключевым словом в стандартном C ++. Код будет компилироваться только в компиляторе, который поддерживает расширение restrict.

restrict является ключевым словом в C99. Так что, если вы используете компилятор C99, он будет работать нормально.

person K-ballo    schedule 13.01.2013

restrict доступен только в режиме C. clang++ потребуется __restrict - добавьте -Drestrict=__restrict во флаги компилятора.

person zch    schedule 13.01.2013