Проблемы компиляции с типами данных sc_dt::sc_biguint (systemc)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы компиляции с типами данных sc_dt::sc_biguint (systemc)

Сообщение Anonymous »

У меня возникли проблемы с компиляцией типов данных sc_dt::sc_biguint. Я попытался воспроизвести проблему на простом примере ниже
#include
#include
using namespace std;

template
class base {
public:
void fun(DATA_TYPE ind){
}

void fun(std::string name){
}
};

int sc_main(int argc, char* argv[]){
base b1;
b1.fun(0);
b1.fun("a");

base b2;
b2.fun(0);
b2.fun("a");
return 0;
}

Здесь вызов перегруженной функции fun() отлично компилируется для b1, который использует uint64_t в качестве шаблона. Кроме того, если я использую uin8_t, uint16_t, он компилируется нормально.
Но как только я использую типы данных systemc (например, тип данных sc_biguint), я получаю такие ошибки компиляции, как показано ниже:
../test.cpp: In function ‘int sc_main(int, char**)’:
../test.cpp:21:13: error: call of overloaded ‘fun(int)’ is ambiguous
b2.fun(0);
^
../test.cpp:8:10: note: candidate: void base::fun(DATA_TYPE) [with DATA_TYPE = sc_dt::sc_biguint]
void fun(DATA_TYPE ind){
^~~
../test.cpp:11:10: note: candidate: void base::fun(std::__cxx11::string) [with DATA_TYPE = sc_dt::sc_biguint; std::__cxx11::string = std::__cxx11::basic_string]
void fun(std::string name){
^~~
../test.cpp:22:15: error: call of overloaded ‘fun(const char [2])’ is ambiguous
b2.fun("a");
^
../test.cpp:8:10: note: candidate: void base::fun(DATA_TYPE) [with DATA_TYPE = sc_dt::sc_biguint]
void fun(DATA_TYPE ind){
^~~
../test.cpp:11:10: note: candidate: void base::fun(std::__cxx11::string) [with DATA_TYPE = sc_dt::sc_biguint; std::__cxx11::string = std::__cxx11::basic_string]
void fun(std::string name){


Подробнее здесь: https://stackoverflow.com/questions/793 ... es-systemc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»