如何处理MacOS / X 10.8.x中弃用的Carbon函数?

我有一个C ++代码库已经存在了一段时间(10年以上)并且它编译并运行良好,但我注意到当我在OS / X 10.8.x(Mountain Lion)下编译它时,编译器会发出关于的弃用警告它调用的一些Carbon函数:

../system/SetupSystem.cpp:575:44: warning: 'UpTime' is deprecated: first deprecated in OS X 10.8 [-Wdeprecated-declarations] ../system/SetupSystem.cpp:575:22: warning: 'AbsoluteToNanoseconds' is deprecated: first deprecated in OS X 10.8 [-Wdeprecated-declarations] ../system/SystemInfo.cpp:249:25: warning: 'MPProcessors' is deprecated: first deprecated in OS X 10.7 [-Wdeprecated-declarations] 

我想将这个代码库升级到Apple批准的新方式(因此,如果/当Apple最终删除这些function时,避免警告和未来的痛苦),但我无法弄清楚新标准是什么。 我查看了developer.apple.com上的OS / X文档,但是我的搜索技能缺乏或者他们的文档都没有,因为我几乎找不到这些函数,也没有关于它们的替换。

我有的具体问题:

  1. 为什么不推荐使用这些function?
  2. 我应该打电话给哪些function?
  3. 是否有一些我不知道的秘密文档存储库会为我回答这些问题?

我找到了上面列出的函数的可用替换:

  1. 可以通过调用mach_absolute_time()来替换UpTime(),如此处所述 。
  2. AbsoluteToNanoseconds()可以用一些数学代替,如上面的链接所示。
  3. 可以通过调用host_info()来替换MPProcessors,如下所示:
 #include 

 mach_msg_type_number_t infoCount = HOST_BASIC_INFO_COUNT;
 host_info(gHostPort,HOST_BASIC_INFO,(host_info_t)&hostInfo,&infoCount);
 int numProcessors = hostInfo.avail_cpus;