Странная синтаксическая ошибка в Xcode, основанная на типе файла

У меня есть заголовок C с этой функцией:

OSStatus MyGetDataFromExtAudioRef(ExtAudioFileRef ext_file_ref, const AudioStreamBasicDescription* restrict output_format, ALsizei max_buffer_size, void** data_buffer, ALsizei* data_buffer_size, ALenum* al_format, ALsizei* sample_rate);

Я могу #include этот заголовок в файле Objective-C и скомпилировать нормально.

Если я изменю тот же файл Objective C на .mm суффикс, а не .m и убедитесь, что он теперь определен как источник Objective C ++, я получаю ошибку компилятора, которая говорит Expected ')' на линии выше. Хотя и не ясно, но, похоже, источник ошибки output_format параметр.

В приведенной выше функции нет ничего плохого синтаксиса в отношении скобок, и я не могу понять, почему это одно изменение должно иметь какое-то значение.

Здесь что-нибудь выпрыгивает?

2

Решение

Просто restrict Ключевое слово не является частью стандарта C ++, поэтому компилятор C ++ (который используется для компиляции кода Objective-C ++) не распознает его.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]