Как сделать вызвать шаблонный метод?

В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.

У меня есть такой шаблонный метод: но не так много примеров того, как их вызывать, как использовать в коде. У меня есть такой шаблонный метод: ...

В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.

У меня есть такой шаблонный метод: но не так много примеров того, как их вызывать, как использовать в коде. У меня есть такой шаблонный метод: ...

В Интернете есть много документов, объясняющих, как писать шаблонные методы, но мало примеров того, как их вызывать, как использовать их в коде.

У меня есть такой шаблонный метод:

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.

6
задан BradleyDotNET 16 September 2014 в 22:56
поделиться