Я получаю ошибку компоновщика (2001, неразрешенный внешний символ) со следующим кодом. Это происходит только с шаблонами, я могу совершенно сделать то же самое с пустотой, междунар и т.д.Шаблон C++ в файле заголовка
//a.h
template<typename T> T foo(DWORD);
//a.cpp
#include "a.h"
template<typename T> T foo(DWORD bar)
{
return T();
}
//main.cpp
#include "a.h"
void something()
{
int hello = foo<int>(1);
}
Это делает работу, когда я положил декларацию обув в файле заголовка, как этот
//a.h
template<typename T> T foo(DWORD bar)
{
return T();
}
Вы должны прочитать о [почему могут быть реализованы шаблоны только в заголовочном файле] [1] [1]: http://stackoverflow.com/questions/495021/why-can -templates только предстоит осуществить-в-заголовок-файл – piotrekg2