我对cpp没有多少经验,更不用说systemc了。
为什么要做这项工作?
sc_in<sc_uint<8>> a,b;
adder.cpp:5:错误:此范围内未声明'a' adder.cpp:5:错误:在此范围内未声明'b' adder.cpp:5:错误:模板参数数量错误(2,应为1)
这确实有效:
sc_in<int> a,b;
答案 0 :(得分:7)
在C ++ 03中,你不能将两个>
字符放在一起,因为编译器认为你正在尝试执行右移。
然后真的很困惑,认为你的意思是:
sc_in<sc_uint<(8 >> a), b;
// ^ ^ ^
// ? | ? Compiler: "what are `a` and `b`?!"
// ! Compiler: "why two arguments?!"
如果你已经设法走得那么远,它会在>
之前抱怨两个丢失的;
字符,具有讽刺意味的是将你带回到你开始的地方。 / p>
您必须改为编写sc_in<sc_uint<8> >
。
从C ++ 11开始修复。