Re: [BUG] VS 8.0 std::auto_ptr
От: Pavel Chikulaev Россия  
Дата: 22.02.06 18:05
Оценка: +1
Здравствуйте, VNG, Вы писали:

<snipped>
Спасибо!!

VNG>Вопросы:

VNG> 1. Где взять такой травы, которую курили парни из MS?
Начитались про template code bloat. (см. ниже)
VNG> 2. Не подскажете домашний адрес господина Плагера?
Тоже интересно, у меня тоже к нему есть дело... за <exception>...

Происходит это из-за
auto_ptr::auto_ptr(auto_ptr_ref<_Ty> _Right)
и
auto_ptr<_Ty>& operator=(auto_ptr_ref<_Ty> _Right),
а точнее из-за auto_ptr_ref<_Ty>
Код:
template<class _Ty>
    struct auto_ptr_ref
        {    // proxy reference for auto_ptr copying
    auto_ptr_ref(void *_Right)
        : _Ref(_Right)
        {    // construct from generic pointer to auto_ptr ptr
        }

    void *_Ref;    // generic pointer to auto_ptr ptr
    };

(Кстати этот код идиотизм — от code bloat не спасает, зато разрешает всё...)
Лечится это дела заменой его на
    template<class _Ty>
    struct auto_ptr_ref
    {    // proxy reference for auto_ptr copying
        auto_ptr_ref(auto_ptr<_Ty>& _Right)
            : _Ref(_Right)
        {    // construct from compatible auto_ptr
        }

        auto_ptr<_Ty>& _Ref;    // reference to constructor argument
    };


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