как собрать информацию о системе в osx использование цели c

В то время как это корректно, что не нужно обычно добавлять материал к станд.:: пространство имен, добавление шаблонных специализаций для пользовательских типов конкретно позволяется. Перегрузка функций не. Это - тонкое различие:-)

17.4.3.1/1, Это не определено для программы C++ для добавления объявлений или определений станд. пространства имен или пространствам имен со станд. пространства имен, если иначе не определено. Программа может добавить шаблонные специализации для любого стандартного шаблона библиотеки к станд. пространства имен. Такая специализация (завершенный или неравнодушный) стандартной библиотеки приводит к неопределенному поведению, если объявление не зависит от пользовательского названия внешней связи и если шаблонная специализация не отвечает стандартным требованиям библиотеки для исходного шаблона.

специализация А станд.:: подкачка была бы похожа:

namespace std
{
    template<>
    void swap(myspace::mytype& a, myspace::mytype& b) { ... }
}

Без template<> бит это была бы перегрузка, которая не определена, а не специализация, которая разрешена. @Wilka предполагает, что подход изменения пространства имен по умолчанию может работать с пользовательским кодом (из-за поиска Koenig, предпочитая версию пространства имен меньше), но этому не гарантируют, и на самом деле действительно не предполагают к (реализация STL должна использовать полностью определенный станд.:: подкачка).

существует поток на comp.lang.c ++. модерируемый с длинный обсуждение темы. Большая часть из него о частичной специализации, хотя (который в настоящее время нет никакого хорошего способа сделать).

7
задан smorgan 10 November 2009 в 14:59
поделиться

4 ответа

Самый простой способ - использовать вывод команды system_profiler . Он также имеет параметр -xml , чтобы упростить автоматический синтаксический анализ вывода.

8
ответ дан 6 December 2019 в 07:06
поделиться

Базовый API, который, как мне кажется, использует System Profiler (по крайней мере, для части собираемой информации), и который вы должны использовать, если хотите очень конкретную информацию, это sysctl . Он позволяет запрашивать отдельные атрибуты системы, включая количество процессоров, скорость процессора, доступную оперативную память и т. Д.

4
ответ дан 6 December 2019 в 07:06
поделиться

Для начала вам достаточно следующей ссылки:

Обновленная ссылка: Wayback Machine: Как получить конфигурацию оборудования и сети

1
ответ дан 6 December 2019 в 07:06
поделиться

Вы можете использовать мост сценариев в Leopard (или новее), чтобы получить нужную информацию непосредственно из Apple System Profiler.

0
ответ дан 6 December 2019 в 07:06
поделиться