Как справиться с не-gcc-совместимым кодом в заголовках OS X Yosemite Core

Я поддерживаю смешанную программу командной строки на C и C ++, которая должна работать в Linux, Windows и OS X. Недавно я обновился до Yosemite, и моя сборка OS X теперь не работает. Ошибка:

/usr/include/dispatch/object.h:143:15: error: expected identifier or '(' before '^' token

Другие люди столкнулись с этой ошибкой.

Строка кода, которая терпит неудачу, является typedef, который использует '^', который являетсянестандартное расширение, обеспечивающее поддержку замыканий.

Основная проблема заключается в том, что некоторые стандартные заголовки Apple начинают требовать специальных расширений Clang. К сожалению, наша программа имеет очень глубокий набор зависимостей, некоторые из которых не компилируются под Clang. Мы использовали компиляторы GCC, установленные через MacPorts. У меня есть обходной путь: изменение строки вobject.h заголовок должен быть GCC-совместимым. Тем не менее, взломать включаемые файлы под/usr/include звучит для меня как просьба о неприятностях.

Могут ли какие-нибудь гуру OS X / Clang предложить более устойчивые способы решения этой проблемы? Это ограничивает будущую полезность GCC на OS X?

Ответы на вопрос(1)

Ваш ответ на вопрос