In this case it doesn't really matter.
If you make list<T*> and try to pass list<SomeClass>, compilation
error will be on call site, and in case of list<T> compilation error
will be during template instantiation, and as a result a little harder to track.
Btw this way:
template<typename T>
void Refresh_Object_Map(list<T> &v)
{
for (typename list<T>::iterator pos=v.begin(),end=v.end(); pos!=end; ++pos) (*pos)->Put_To_Map();
}
is a little bit more effective.
If you do not modify list in a cycle (which is bad idea anyway).