I think there have been a lot of discussion about this, It might been related to the template serialization traits in the documentation , but the explanation was a little to subtle for me, \ In fact, I cannot really understand how to avoid The unregistered exception when I use a template like this. // template declaration pseudo code Class A { Virtual ~A(){}; template<class Archive> void serialize(Archive & ar, const unsigned int version){}; }; Template <T> Class B : public A { T Object; B(T& _object) { Object=_object; } template<class Archive> void serialize(Archive & ar, const unsigned int version) { Ar & Object; }; } //Main Code Vector array; Template<T> void Add(T& val) { B<T>* objectToAdd= new B<T>(val) array.push_back(objectToAdd); } //User code Add((int)0); And when i archive the array in another .cpp the exception is raised, because the class B<int> as not been exported. I would like to avoid explicitly declare BOOST_CLASS_EXPORT_GUID(B<int>, "B_int") For each instanciation of B<> somewhere in the global space. In the Add() or in the template declaration that s ok, but I cannot suppose what types that the user will use. Thanks in advance.. - VDB - "LNK2019: unresolved external symbol" Olivier Vanden Bos MSN#TheVdeub@hotmail.com AI Programmer UBISOFT Montreal