В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.
У меня есть такой шаблонный метод: но не так много примеров того, как их вызывать, как использовать в коде. У меня есть такой шаблонный метод: ...
В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.
У меня есть такой шаблонный метод: но не так много примеров того, как их вызывать, как использовать в коде. У меня есть такой шаблонный метод: ...
В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.
У меня есть такой шаблонный метод:
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);
Я компилирую этот код без ошибок. Но когда я пытаюсь использовать этот метод, я получаю следующие ошибки:
error LNK1120: 1 unresolved externals
and
error LNK2019: unresolved external symbol «public: static void __cdecl VectorConvertor :: AppendToVector (class std: : vector> &, class 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? $ Vector @ EV ? $ Allocator @ E @ std @ @@ std @ @ V? $ Basic_string @ _WU? $ Char_traits @ _W @ std @@ V? $ Allocator @ _W @ 2 @@ 3 @@Z)
Когда я не использую этот метод в своем коде, я не получаю сообщений об ошибках. Что я делаю не так, когда звоню? Я что-то упустил?
Я использую Visual Studio 2010 Express Edition.