Есть шаблон
template
<
typename T,
void (* free_function)(T* val)
>
class common_freezer
{
...
void operator=(T* data){if(data!=d)set(data);}
...
}
Есть явная специализация.
Объявлена в .h
template<> void common_freezer<void,pkr_free_result>::operator=(const common_freezer& rhs)
{
...
}
С Builder ом собиралась нормально.
gcc и VC7 ругаются при линковке.
VC7 говорит что мол символ operator= already defined in ляляля.obj
Дык. Так где ж мне тогда объявлять её как не в хедере, ведь надо чтобы она видна была при использовании?