Функция шаблона дает ошибку в VS 2015 - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть проект C ++ в VS 2015. Я создал шаблонную функцию в одном классе.

TressPos.h

class TressPos
{

   //constructor
   //destructor

   template <typename T>
   void GetNewVector(T* t, int scale);
}

TressPos.cpp

template <typename T>
void TressPos::GetNewVector(T* t, int scale)
{
  //Do somethings here..
  //....................
}

Теперь в другом классе.

DigitalMaster.cpp

TressPos tp;

void DigitalMaster::NesterLock()
{
   tp.GetNewVector(this, 1200);
   //More todo's here...
   //................
   tp.GetNewVector(.....);
}

Теперь, когда я строю проект, он выдает ошибку компоновщика.

По сути, жалуется, что GetNewVector может 'в качестве первого аргумента не принимать указатель на DigitalMaster.

Так что я сделал, чтобы переместить функцию шаблона как встроенную в класс TressPos.

TressPos.h

class TressPos
{

   //constructor
   //destructor

   template <typename T>
   inline void TressPos::GetNewVector(T* t, int scale)
   {
      //Do somethings here..
      //....................
    }
}

Теперь я не получаю никакой ошибки компоновщика при вызове этой шаблонной функции в классе DigitalMaster.

Но по какой-то причине Visual Studio считает, что в классе TressPos нет функции, вызываемой в GetNewVector.Хотя и компилятор, и компоновщик счастливы.

, то есть в визуальном редакторе stuido, он рисует красную линию под функцией GetNewVector в файле DigitalMaster.cpp.

Есть идеи, что происходит?Я новичок в использовании шаблонов в C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...