私の C++ プログラムには、次のコードがあります。
FileInit(gamefile, master, heap, settings);
ヘッダーファイルで:
template < typename TYPE, typename COMP>
void FileInit(std::ifstream &gamefile, std::deque &master,
poorman_heap &heap, settings &set);
ここで、poorman_heap は独自のヘッダー ファイルで次のように定義されます。
template< typename TYPE, typename COMP>
template< typename InputIterator>
poorman_heap::poorman_heap(
InputIterator start,
InputIterator end,
COMP comp
) {
しかし、(最初の行で) ヒープを渡そうとすると、次のエラーが発生します。
undefined reference to `void FileInit(std::basic_ifstream >&, std::deque >&, poorman_heap&, settings&)'
collect2: error: ld returned 1 exit status
make: * [notld] Error 1
ヒープに渡そうとしない場合、すべてが機能するので、ファイルを正しくリンクしていることはわかっていますが (これは過去に私にとって問題でした)、テンプレート化されたオブジェクトをに渡す方法がわかりません関数。どんな助けでも大歓迎です!