Ошибка компилятора при включении кода C ++ в проект iPhone - PullRequest
0 голосов
/ 26 октября 2009

Я пытаюсь включить некоторый код C ++ в свой проект iPhone и получаю следующую ошибку компилятора:

"ошибка: ожидаемый инициализатор перед '<' токеном" </strong>

в этой конструкции кода:

  template<typename T, P_UINT_32 BEG, bool OQ, bool OVR, bool DBG>
  P_UINT_32 EKType<T, BEG, OQ, OVR, DBG>::getSizeX() const {
    return n;
  }

Похоже, что компилятор XCode не распознает это как допустимый синтаксис C ++. Я назвал свои файлы C ++ с .h и .mm, и я установил типы файлов в sourcecode.cpp.h и sourcecode.cpp.cpp

Кто-нибудь имеет представление о том, почему я получаю эту ошибку?

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Вам нужно дать имя файлу .mm, только если файл содержит Objective-C и C ++.

Если файл содержит только C ++, он должен иметь расширение .cpp

Если файл представляет собой смесь ObjC и C ++, то он должен иметь расширение .mm и иметь тип, заданный как sourcecode.cpp.objcpp

1 голос
/ 26 октября 2009

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

0 голосов
/ 13 января 2010

Вы уверены, что исходный файл, который вы пытаетесь скомпилировать, включает в себя объявление EKType класса (или структуры) и объявление P_UINT_32?

Я думаю, вы получите аналогичную ошибку, если компилятор не знает EKType или P_UINT_32.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...