未定义模板的隐式实例化 - 编译器问题

时间:2016-06-21 14:33:10

标签: c++ macos templates clang

我正在尝试编译一个在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;

关于为什么会发生这种情况的任何想法?

谢谢!

0 个答案:

没有答案