Есть класс
class RegularUser : public User
{
public:
RegularUser() {}
~RegularUser() {}
template <class T>
friend void print_u(T& obj);
и есть функция
template <class T>
void print_u(T& obj)
{
cout << "Hello, world!\n";
}
Хочу сделать это функцию другом класса, но при вызове выдает ошибку
RegularUser user;
print_u(user);
Скорее всего вызываю не так, тк без вызова всё нормально
Ошибку выдает
error LNK2019: unresolved external symbol "void __cdecl print_u<class RegularUser>(class RegularUser &)" (??$print_u@VRegularUser@@@@YAXAAVRegularUser@@@Z) referenced in function _main
Проект разделен на 2 .cpp и 1 хедер, где описаны прототипы
.cppзасунули? – AnT stands with Russia Dec 08 '19 at 18:20Например, реализация шаблонного кода помещена в .cpp файл, хотя она должна находиться полностью в подключаемом .h файле.*
– Harry Dec 08 '19 at 18:21friendваш вопрос не имеет. – AnT stands with Russia Dec 08 '19 at 18:22