индекс указателя на неполный тип 'const std::complex‹float› при использовании С++ 11

Мне нужно скомпилировать статическую библиотеку в С++ 11 и LLVM. Эта библиотека использует ускоренную структуру, которая включает структуру veclib.

Поскольку я использую С++ 11, у меня есть некоторые ошибки, например:

subscript of pointer to incomplete type 'const std::complex<float>'
forward declaration of 'std::complex<float>'

предварительное объявление выполняется в "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/vecLib.framework/Headers/vForce.h " файл.

Все нормально компилируется со стандартной библиотекой.

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


person Ziggy    schedule 27.05.2013    source источник
comment
Вы используете старый SDK (10.7), предшествующий C++11, так что это неудивительно. Может быть, вы могли бы попробовать 10.8?   -  person Paul R    schedule 27.05.2013
comment
Привет, спасибо за ваш ответ. К сожалению, то же самое с 10.8 SDK.   -  person Ziggy    schedule 27.05.2013
comment
Привет. Поскольку все мои функции находятся в одном файле cpp, это должно быть возможно. Как я могу сделать это с помощью xcode 4.6?   -  person Ziggy    schedule 27.05.2013
comment
Для каждого исходного файла вы можете указать язык/компилятор по мере необходимости. Выберите разумное значение по умолчанию, а затем просто настройте исходные файлы, которые вам нужны. Или, что еще проще, напишите критически важные для производительности вещи на C и поместите их в исходные файлы .c и интерфейс C, а затем делайте с материалом C++ все, что хотите.   -  person Paul R    schedule 27.05.2013
comment
Привет. спасибо за вашу помощь, но я нашел простое решение. Я просто добавляю #include ‹cstdlib› в файл cpp. Это делает работу. Спасибо, в любом случае.   -  person Ziggy    schedule 27.05.2013


Ответы (1)


Я просто включил файл cstdlib в начало проблемного файла.

#include <cstdlib>
person Ziggy    schedule 27.05.2013
comment
Это не ответ. Пожалуйста, добавьте это как дополнительную информацию к вашему сообщению и удалите это. - person 0x499602D2; 27.05.2013