Как игнорировать ошибку определения Out-of-line в Xcode с LLVM 4.1

Я получаю ошибку компилятора с LLVM 4.1:

/Users/vibhor/src/mam/client_daemon/source/core/_osx/UtilSystem_OSX.cpp:261:32: Out-of-line definition of 'what' does not match any declaration in 'std::bad_typeid'

для следующего кода:

const char* ::std::bad_typeid::what() const throw() { return NULL; }

Есть ли способ подавить это? Он прекрасно компилируется с GCC.

1

Решение

Мой оригинальный ответ, который состоял в том, чтобы попытаться скомпилировать с другим stdlib, был полностью неосновным.

Это похоже на попытку компиляции с использованием 10.5 SDK, у которого bad_typeid отличается от ожидаемого. Обходной путь является защитой от определения:

#if defined(MAC_OS_X_VERSION_10_6) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
const char* ::std::bad_typeid::what() const throw() { return NULL; }
#endif
0

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

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

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