我正在尝试编译一个在Linux系统上编译和运行的程序(使用g ++和clang ++)。 但是,在我的Mac上,它会产生很多类似于下图所示的错误: 错误出现在“流程”上。
其他一些stackoverflow线程提供了关于提供模板的前向定义的答案,我认为已经在具有模板< typename ....
代码段:
namespace A {
template <typename T, unsigned NIN, unsigned NOUT, unsigned BUS_WIDTH = 16,
typename ARB_FN = cm_arb_rr<T, NIN>>
class cm_xbar : public as_module {
SC_HAS_PROCESS(cm_xbar);
public:
std::array<cm_fifo<T, BUS_WIDTH>, NIN> flow;
};
}
错误:
error: implicit instantiation of undefined template
'std::__1::array<A::cm_fifo<A::aspkt *, 16, 16>, 1>'
std::array<cm_fifo<T, BUS_WIDTH>, NIN> flow;
关于为什么会发生这种情况的任何想法?
谢谢!