c++ - 声明 SystemC 类型的 vector sc_fix

标签 c++ vector systemc

我正在尝试制作 std::vector类型 sc_fix .我知道我可以制作 std::vector<sc_fixed<WL,IWL, ...>> name; .但是我想使用非模板版本 sc_fixed .但是我不确定如何实例化此 vector 并设置字和整数位长度,因为我无法将其声明为与模板版本相同。

我曾尝试制作一个数组来填充相同类型的内存空间,但这也给了我一个错误。

sc_fix* img_num (32, 15, SC_RND_ZERO, SC_SAT_ZERO);
img_num[0] = 12.12;
img_num[1] = 12.12;
img_num[2] = 12.12;
img_num[3] = 12.12;
std::vector<sc_fix> img (img_num, img_num+sizeof(img_num) / sizeof(img_num[0]));

这给了我错误

Main_Test.cpp: In function ‘int sc_main(int, char**)’:
Main_Test.cpp:24: error: initializer expression list treated as compound expression
Main_Test.cpp:24: error: cannot convert ‘sc_dt::sc_o_mode’ to ‘sc_dt::sc_fix*’ in initialization
make: *** [Main_Test] Error 1

是什么导致了这个错误,我该如何解决?

最佳答案

您必须在 sc_fix 之后删除 * 并声明类型为 sc_fix 的变量,而不是指向 sc_fix*< 的指针,并调用它的构造函数:

sc_fix img_num (32, 15, SC_RND_ZERO, SC_SAT_ZERO);

编译器试图初始化一个指针并提示提供了太多的初始化。

但我认为你想要做的是用 4 个数字分配 vector :

std::vector<sc_fix> img_num (4, sc_fix(32, 15, SC_RND_ZERO, SC_SAT_ZERO));
img_num[0] = 12.12;
img_num[1] = 12.12;
img_num[2] = 12.12;
img_num[3] = 12.12;

关于c++ - 声明 SystemC 类型的 vector sc_fix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48430350/

相关文章:

c++ - 如何在 SystemC 中创建自定义 channel ?

python - 使用 Boost/Python 的 undefined symbol

c++ - 查找关于成对 vector 的条件

c++ - 跟踪 if 语句被使用了多少次 true

c++ - vector (容器)是否需要使用 "allocator"?

c++ - 非常量对象的 const vector

c++ - systemC 错误 : No instance of constructor "BlackBox<R, expR、C、expC、T、expT> ... 等

c++ - SystemC:对端口的 read() 和 write() 不起作用

javascript - JavaScript API 是否公开用于压缩文件的内部解压器?

c++ - 未定义对自写函数的引用