Вот кусок кода (в сабже):
template<typename T>
struct Bebe
{
Bebe( const Bebe<T>& obj )
{
puts("copy constr");
}
template<typename U>
Bebe( const Bebe<U>& obj )
{
puts("template copy constr");
}
};
В таком виде не компиляется, на темплейтный конструктор копирования ругается, что он уже определён, а если простой конструктор копирования убрать, то студия генерит конструктор копирования по умолчанию.
Как быть?
Это моя попытка перетащить std::auto_ptr<> из 7й студии в 6ю.
Хым.. пока писал, понял что в STL Port решали эту же проблему. Порылся, пораскрывал их макросы — темплейтный и простой конструкторы копирования сосуществуют вместе. Обратил внимание — поменяны местами.
Решил и я поменять, заработало...
Вот так. Работа программиста C++ иногда похожа не на инженерную а на исследовательскую работу. Причём на ровном месте.
Может кому пригодиться.