BCB: unimplement export template 分離編譯樣板失敗

BCB的Help裡面擺明了就是不支援export template的功能。



假設我寫了一段樣板的程式碼如下:


template 
T** NEW(const int height, const int width)
{
 T** array = NULL;
 if (height>0 && width>0)
 {
  array = new T*[height];
  if (array != NULL)
  {
   for (int j = 0 ; j < height ; ++j)
    array[j] = new T[width];
  }
  else
  {
   delete[] array;
   array = NULL;
  }
 }
 return array;


我在BCB中就不能只在.h(即標頭檔)中寫這個樣板函數的原型(prototype),將上面的程式碼放到.cpp裡面進行編譯。編譯時只會得到Link Error Unresolved External,從以前學過的系統程式課程來看,export template應該是需要編譯器支援額外的處理,將模板的型態額外資訊輸出的到OBJ中,並且Linker也要進行這些額外資訊的處理。

留言