Ошибка CoreGraphics с g ++ — 8 на OS X 10.13

Я компилирую программу, используя g ++ 8.1 (из Homebrew) на OS X 10.13.5, которая включает некоторые заголовки из инфраструктуры CoreGraphics. Я получаю некоторые синтаксические ошибки от самих заголовков:

/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected unqualified-id before '^' token
typedef void (^CGPathApplyBlock)(const CGPathElement * element);
^
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected ')' before '^' token
typedef void (^CGPathApplyBlock)(const CGPathElement * element);
~^
)
/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:393:53: error: 'CGPathApplyBlock' has not been declared
CG_EXTERN void CGPathApplyWithBlock(CGPathRef path, CGPathApplyBlock CF_NOESCAPE block)

Некоторые прибегают к поиску в Google, что каретка — это своего рода управляемый указатель (?), Но неясно, поддерживается ли это в OS X, g ++ или clang (единственные ссылки, которые я видел на этот синтаксис, похоже, относятся к MSVC).

Любые идеи о том, что здесь происходит, и как исправить или обойти эту ошибку (в идеале, все еще используя g ++)? У меня была мысль отключить защиту от записи для / System и изменить эти заголовки так, чтобы они использовали * not ^, но не были уверены, что это только навредит, чем поможет.

1

Решение

Задача ещё не решена.

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

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