Visual Studio 6
От: johny5 Новая Зеландия
Дата: 27.09.06 05:23
Оценка:
Вот кусок кода (в сабже):


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++ иногда похожа не на инженерную а на исследовательскую работу. Причём на ровном месте.

Может кому пригодиться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.