Как отделить реализацию шаблона от его объявления?
К примеру:
queue.h:
template<class T> queue{
struct item{
atomic<T> itm
item*next
}
queue();
push();
pop();
~queue();
}
queue.cpp
template<typename T>
queue<T>::queue()
{
Head=new qq;
End=Head;
}
template<typename T>
void queue<T>::push(T* item){
try{
Logger("Function::%s position:%s:%i",__FUNCTION__,__FILE__,__LINE__);
item* t=new item;
t->item=NULL;
t->next=NULL;
End->itm=new atomic<T*>;
End->itm->store(item);
End->next=t;
End=End->next;
}
catch(...){
Exout("Exception::%s position:%s:%i",__FUNCTION__,__FILE__,__LINE__);
throw;
}
}
и т.д.
Код в данном виде, в тем месте, где используется шаблон, выдает ошибку линковки
П.с. зачем надо: GUI проекта написано на .NET, и студия говорит, что не может одновременно использовать CLR и atomic.
П.п.с: VS 2012, стандарт с++2011