Можно ли использовать типы данных System C в C ++ без всего ядра System C? - PullRequest
1 голос
/ 07 октября 2010

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

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

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

Ответы [ 2 ]

4 голосов
/ 07 октября 2010

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

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

1 голос
/ 07 октября 2010

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

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

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

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

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

...