Я рассмотрел использование tgmath.h
для борьбы с беспорядком CGFloat typedef float/double
при работе с arm64.
Этот ответ содержит довольно хорошее описание того, как его использовать, за исключением того, что для меня это вообще не сработало. Независимо от того, мой код все еще вызывал функции math.h
.
Проведя некоторое время, глядя на все параметры компилятора проекта, я обнаружил, что отключение функции "Модули" (@import vs #import - iOS 7) делает все это работает. Более конкретно, параметр в настройках проекта называется Enable Modules(C and Objective-C)
в раскрывающемся списке Apple LLVM 5.1 - Language - Modules
.
Чтобы увидеть быстрый пример этой проблемы, загрузите проект, который использует tgmath, например MBProgressHUD, и посмотрите, что произойдет, когда вы включите настройка проекта модулей. Замены tgmath.h
заменяются регулярными вызовами math.h
.
Мой вопрос:
-
Почему модули не позволяют правильно импортировать tgmath?
-
Есть ли способ обойти это и использовать как tgmath, так и модули? Я бы все еще мог их использовать.