Witam, mam wzorzec i jeśli wszystko jest zdefiniowane w jednym pliku jest ok, działa, ale jeśli wzorzec jest w osobnym pliku i tworzę obiekt gdzieś w aplikacji np główna forma to linker wywala error. Przykładowo:
//Unit1.h:
template <class T1, class T2>
class Test
{
T1 te1;
T2* te2;
public:
Test();
};
typedef Test<int, int> TestInt;
//Unit1.cpp:
template <class T1, class T2>
Test<T1, T2>::Test()
{}
//MainUnit.h:
#include "Unit1.h"
TestInt testint;
i dostaje linker error Unresolved external 'Text<int, int>()' ale jak klasa Test jest w MainUnit.h jest ok i działa. O co chodzi?
export
, w C++11 wywalili całkiem ten pomysł.