Есть много онлайн-документов, объясняющих, как писать шаблонные методы, но не так много примеров того, как их вызывать, как использовать их в коде.
У меня есть такой шаблонный метод: VectorConvertor.h
template <class T>
static void AppendToVector(std::vector<T> & VectorToBeAppended,
std::vector<T> & VectorToAppend);
VectorConvertor.cpp
template <class T>
void VectorConvertor::AppendToVector(std::vector<T> & VectorToBeAppended,
std::vector<T> & VectorToAppend)
{
for (std::vector::size_type i=0; i<VectorToAppend.size(); i++)
{
VectorToBeAppended.push_back(VectorToAppend.at(i));
}
}
Попытка использования в коде:
std::vector<uint8_t> InputData, OutputData;
// ...
VectorConvertor::AppendToVector(OutputData, InputData);
Я скомпилировал этот код без ошибок.Но когда я пытаюсь использовать этот метод, я получаю следующие ошибки:
ошибка LNK1120: 1 неразрешенные внешние данные
и
ошибка LNK2019: неразрешенный внешний символ "public: static void __cdecl VectorConvertor :: AppendToVector (класс std :: vector> &, класс std :: vector> &)" (?? $ AppendToVector @ E @ VectorConvertor @@ SAXAEAV? $ vector @ EV?$ allocator @ E @ std @@@ std @@ 0 @ Z) ссылка на функцию "public: staticclass std :: vector> __cdecl Utf8 :: WStringToUtf8 (класс std :: basic_string, класс std :: allocator>)" (?WStringToUtf8 @ utf8 @@ SA? AV? $ вектор @ EV? $ распределитель @ E @ станд @@@ станд @@ V? $ basic_string @ _WU? $ char_traits @ _W @ станд @@ V? $ распределитель @ _W @ 2 @@ 3 @@ Z) * 1027 *
Когда я не использую этот метод в своем коде, я не получаю никаких сообщений об ошибках.Что я делаю не так во время звонка?Я что-то упустил?
Я использую Visual Studio 2010 Express Edition.