Можно ли использовать типы данных System C в C++ без всего ядра System C?

Система C предоставляет целочисленные типы произвольной длины, которыми можно манипулировать либо как числами (т. е. с поддержкой арифметики), либо как битовыми векторами (т. е. с поддержкой логических операций и работой с подвекторами).

System C также обеспечивает поддержку многих других вещей, которые мне не нужны, таких как часы, триггеры и тому подобное, а также собственную среду выполнения. Я привередлив - мне нужны типы данных без накладных расходов.

Можно ли использовать эти типы данных независимо от остальной части ядра системы C? Если да, то как?


person Nathan Fellman    schedule 06.10.2010    source источник


Ответы (2)


Я не знаком с SystemC, но мне всегда нравится указывать, что в проектах с открытым исходным кодом вы можете получить ответ из первых уст.

Просматривая файлы CPP, которые реализуют целочисленный тип, кажется, что это зависит от вещей в datatypes/, utils/ и kernel/:

http://github.com/systemc/systemc-2.2.0/tree/master/src/sysc/datatypes/int/

Если статическая ссылка, которую предлагает Джерри, не урезает ее достаточно до того, что кажется разумным (из-за какой-то ненужной глобальной или подсистемной инициализации), вы можете разветвить ее на GitHub для своей минималистской версии, если это важно сделать... но содержание собственного филиала всегда связано с затратами.

(Или вы можете внести свой вклад в мета-систему для сокращения ненужных людям частей системы-C, которые могут быть включены в основной дистрибутив!)

person HostileFork says dont trust SE    schedule 06.10.2010

По крайней мере ТТБОМК, нет. Однако существует довольно много библиотек, которые поддерживают целые числа произвольной длины в C++ без «вещей» аппаратного проектирования в SystemC (например, NTL, GMP, MIRACL). Некоторые из них добавляют больше, чем просто арифметику произвольной точности (например, различные функции, широко используемые в теории чисел).

OTOH, учитывая типичные реализации, по крайней мере, если вы используете их как статические библиотеки, только то, что вы действительно используете, будет связано с вашим исполняемым файлом.

person Jerry Coffin    schedule 06.10.2010