CodeGear C++ Builder 2009 выдаёт ошибку линковщика:
[ILINK32 Error] Error: Unresolved external 'Go<std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::iterator>(…' referenced from F:\ПРОГРАММА\DEBUG\UNIT1.OBJ
Что не правильно? Почему ошибка? (в bcc55 под дос эта фукция и её вызов всё работает).
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <list.h>
#include <string>
template <class InputIterator>
string Go(InputIterator, InputIterator, string);
list<string> list1;
list<string> list2;
list<string> list3;
list<string>::iterator it1,it2,it3;
string str;
…
void __fastcall TForm1::Button1Click(TObject *Sender)
{
…
it1=list1.begin();
it3=list3.begin();
str=Go(it1,it3,str);
…
}
template <class InputIterator>
string Go(InputIterator it1, InputIterator it3, string x)
{
string y,z;
…
…
…
return z;
}
30 июня 2009 в 21:04
Помогло. Спасибо!
30 июня 2009 в 20:03
Помести определение Go до ее вызова, думаю, что поможет.