错误的模板参数数量

时间:2014-11-26 01:34:32

标签: c++ systemc

我对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;

1 个答案:

答案 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开始修复。