【发布时间】:2018-10-02 21:36:56
【问题描述】:
我正在尝试创建我拥有的矢量类的typedef。我在 SO 上发现了类似的问题,但它们侧重于接受不同类型数据的模板类,而我的类是基于整数的模板。
所以,我的类是这样定义的:
namespace sc_dt {
template <int W> class sc_bv { ... }; //meaning systemc_bit_vector
}
我想使用 typedef,这样我就不必每次都输入sc_dt::。但是,通过使用这个:
typedef sc_dt::sc_bv<int> sc_vector;
我收到以下错误:
模板参数列表中参数 1 的类型/值不匹配
我该如何解决这个问题?
【问题讨论】:
-
您的模板参数是一个
int值,而不是一个类。例如,您可以定义typedef sc_dt::sc_bv<0> sc_vector。 -
不要怀疑你的困境的诚意,但与
sc_vector相比,输入sc_dt::sc_bv真的有多少麻烦?仅多出 3 个字符。 -
@StoryTeller 好点。最后我可能会把它命名为
sc_v,但即使这样也不会让它变得更短。原因1是,当我遇到问题不知道如何解决时,它开始困扰我,所以我想知道如何去做。 ...如果只是为了简洁,我可以使用using sc_dt::sc_bv -
@Rorschach 如果我是你,我可能会避免在
sc_core命名空间中重命名为已模板化的类sc_vector,参考可用here