Простой ответ: Вы не можете просто перенести нетривиальный код Delphi на C ++ без полного переписывания. Объектная модель C ++ сильно отличается от Delphi. Он не имеет базового класса, такого как TObject, из которого получены все другие объекты, и ему не хватает поддержки многих вещей RTTI, которые код Delphi часто принимает как должное. И нет простого способа переопределить Delphi RTTI в C ++, так как большая часть этого делается на уровне компилятора, и большая часть основана на том факте, что все классы Delphi происходят от TObject.
В C ++ также отсутствует поддержка концепции инициализации модуля и финализации разделов, которые так распространены в Delphi, и то, что у них вместо этого, сильно нарушено. (Посмотрите «фиаско инициализации статического порядка» для всех кровавых деталей.)
Обработка исключений в Delphi также намного более продвинута, чем в C ++. Частично это объектная модель и часть магии компилятора. Кроме того, C ++ не поддерживает конструкцию try-finally .
Если вы хотите перенести проект Delphi на Mac, Free Pascal - ваше лучшее решение. Он не на 100% совместим с Delphi, но достаточно хорош для многих вещей, и вы специально упомянули, что вам не нужно переносить вещи с Delphi GUI. AFAIK Область GUI является источником большинства недостатков совместимости FPC, поэтому, если в этом нет необходимости, FPC, вероятно, будет достаточно близок к идеалу для ваших нужд, по крайней мере, пока CodeGear не выпустит компилятор OSX. (Который официально не был объявлен, но, исходя из сказанного, было бы разумно предположить, что он будет доступен в следующем году.)