Ошибка Boost :: asio в MSVC10 - ошибка BOOST_WORKAROUND в ~ buffer_debug_check () в buffer.hpp - PullRequest
2 голосов
/ 21 мая 2010

Прямая компиляция примера http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/tutorial/tutdaytime3/src.html приводит к исключению нулевого указателя во время выполнения. Трассировка стека указывает на деструктор buffer_debug_check, который содержит этот комментарий:

// Проверка итератора строки MSVC может привести к сбою в std :: string :: iterator // деструктор объекта, когда итератор указывает на уже уничтоженный // std :: string object, если итератор не очищен первым.

Тест #if BOOST_WORKAROUND (BOOST_MSVC,> = 1400) успешно выполняется в MSVC10 и (но) приводит к исключению пустого указателя в c: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ include \ xutility line 123

_Iterator_base12& operator=(const _Iterator_base12& _Right)
{
    // assign an iterator
    if (_Myproxy != _Right._Myproxy)
        _Adopt(_Right._Myproxy->_Mycont);
    return (*this);
}

_Right._Myproxy имеет значение NULL

...