BCB: unimplement export template 分離編譯樣板失敗
BCB的Help裡面擺明了就是不支援export template的功能。
假設我寫了一段樣板的程式碼如下:
我在BCB中就不能只在.h(即標頭檔)中寫這個樣板函數的原型(prototype),將上面的程式碼放到.cpp裡面進行編譯。編譯時只會得到Link Error Unresolved External,從以前學過的系統程式課程來看,export template應該是需要編譯器支援額外的處理,將模板的型態額外資訊輸出的到OBJ中,並且Linker也要進行這些額外資訊的處理。
假設我寫了一段樣板的程式碼如下:
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也要進行這些額外資訊的處理。
留言