Ошибки при сборке проекта в omnet ++ - PullRequest
0 голосов
/ 13 мая 2019

При создании импортированного проекта возникает ошибка. Я использую gcc версии 9.

Я уже успешно собрал Inet 4.1. Я также пробовал это с какой-то другой версией gcc между 5 и 8, но произошли те же ошибки.

main.cc
In file included from /usr/include/c++/9/bits/stl_algo.h:66,
                 from /usr/include/c++/9/algorithm:62,
                 from /home/sebastian/Downloads/omnetpp-5.4.1/include/omnetpp.h:29,
                 from main.cc:20:
/usr/include/c++/9/bits/uniform_int_dist.h: In instantiation of ‘class std::uniform_int_distribution<double>’:
model/Showcase/Layer1/DummyWindPark/WindPowerGenerator.h:53:43:   required from here
/usr/include/c++/9/bits/uniform_int_dist.h:60:49: error: static assertion failed: template argument must be an integral type
   60 |       static_assert(std::is_integral<_IntType>::value,
      |                                                 ^~~~~
In file included from model/Showcase/Layer1/Windpark/WindParkNetwork.h:21,
                 from model/Showcase/Layer1/SmartParkingScenario.h:26,
                 from main.cc:26:

1 Ответ

0 голосов
/ 13 мая 2019

Вы или тот, кто написал заголовочный файл model/Showcase/Layer1/DummyWindPark/WindPowerGenerator.h, пытается в этом файле создать экземпляр шаблона template< class IntType = int >class uniform_int_distribution с IntType = double, как отмечает компилятор:

In instantiation of ‘class std::uniform_int_distribution<double>’

double не является целочисленным типом, и шаблон содержит static_assert требующий, чтобы IntType был целочисленным типом. Так что static_assert терпит неудачу как время компиляции:

 error: static assertion failed: template argument must be an integral type

Интегральные типы - это те, которые удовлетворяют предикату шаблона std::is_integral.

Если вы или автор ошибочного std::uniform_int_distribution<double> хотите сгенерировать равномерное распределение double, тогда они должны использовать template< class RealType = double > class uniform_real_distribution

...