У меня была такая же проблема, я не хотел связываться с несколькими typedef в разных файлах, поэтому я решил ее с наследованием:
был:
class BurstBoss {
public:
typedef std::pair<Ogre::ParticleSystem*, bool> ParticleSystem; // removed this with...
сделал:
class ParticleSystem : public std::pair<Ogre::ParticleSystem*, bool>
{
public:
ParticleSystem(Ogre::ParticleSystem* system, bool enabled) : std::pair<Ogre::ParticleSystem*, bool>(system, enabled) {
};
};
Работал как шарм. Конечно, мне пришлось изменить любые ссылки из
BurstBoss::ParticleSystem
на просто
ParticleSystem
Лучшая особенность VHDL - то, что он используется для проектирования и реализации оборудования. :)
Возможность иметь несколько различных реализаций (архитектур) одного интерфейса и легко обмениваться ими.
То же самое и с ООП в C ++: вы можете определить один интерфейс и несколько реализаций. Это очень полезно в VHDL для создания моделей моделирования и синтеза для одного и того же устройства.
Параллелизм с низкими накладными расходами, присущий языковой модели. Это чем-то напоминает мне языки потока данных.
На самом деле существует библиотека SystemC для C ++, которая реализует семантику параллельного выполнения. Вы можете легко загрузить и попробовать это: http://www.systemc.org . Я работаю над синтезом C ++ - to-RTL. Так что я надеюсь, что через 4-5 лет вся разработка оборудования будет осуществляться с использованием SystemC и C ++.
Какие действительно полезные, но особенности эзотерического языка в VHDL
Во-первых, я не верю в теорию о том, что VHDL имеет «эзотерические» особенности. Однако распространенные «стили» VHDL, существующие в природе, чаще всего зависят от того, какое подмножество VHDL поддерживается аппаратными синтезаторами.
Уравнение в мире VHDL очень простое: если инструменты поддерживают подмножество языка, оно будет использовано. В противном случае эта функция, вероятно, будет использоваться недостаточно.
особенно при сравнении VHDL с другими (нормальными) языками программирования.
Обратите внимание, что VHDL не является языком программирования. Скорее, это язык для описания дискретных систем событий (со «случайным» последствием, что его можно использовать для описания цифрового оборудования). Я полагаю, что сравнение с языками программирования проистекает из того, что VHDL похож на некоторые реальные языки программирования.
Теперь перейдем к некоторым фактическим ответам на вопрос ОП.
Какие действительно полезные, но эзотерические языковые особенности в VHDL ...
Вот мой выбор, без определенного порядка.
Какие действительно полезные, но эзотерические языковые особенности в VHDL ...
Определяемые пользователем физические типы, такие как «угол», «напряжение», «коэффициент_температуры», где вы затем можете написать например temp <= 45 deg;
или volt <= 3.3 V;
.