std :: unique_ptr和内部类型约束

时间:2014-12-12 15:56:15

标签: c++ c++11 unique-ptr

我有

模板类,如

template <typename T> 
class CHDF5Raster
{
   public:
       CHDF5Raster(); 
       ~CHDF5Raster()
       {
          if (m_Writing)
          {
            status = H5Fflush(m_H5File, H5F_SCOPE_GLOBAL);
            if (status < 0)
            ....
          }
       }
       ....
}

在我定义的代码

之后
std::unique_ptr<CHDF5Raster<int>[]>    raster;

在其他地方,由于代码的动态

m_pCatchRasterR8.reset(new  CHDF5Raster<int> [DYNAMIC_NUMBER]);
好又甜又好。一切都很好。

但是现在我跑

编辑

忘了提一下,我使用 Microsoft VC 2012 编译器和 Intel Composer 2013 。 它们都产生相同的结果。

我得到了什么

链接错误

  

错误1错误LNK2019:未解析的外部符号__imp_H5Fflush   在函数&#34; public中引用:__ cdecl
  CHDF5Raster ::〜CHDF5Raster(无效)&#34;   (?? 1?$ CHDF5Raster @ H @@ QEAA @ XZ)

H5Fflush上的链接错误,这是链接库的一个功能。库调用还有其他链接错误(这不是唯一的错误),为简单起见我省略了它们。

问题:

  1. 为什么我在动态数组上定义std::unique_ptr后会出现 链接 错误,而没有它一切都很好?

  2. 如何解决此问题?

0 个答案:

没有答案