Re: инициализация boost::function
От: Vladimir Prus  
Дата: 02.03.05 07:45
Оценка:
Здравствуйте, deva66, Вы писали:

D>Создаю функтор, которому нужно в будущем передать параметр:

D>
D>boost::function <void (std::string)> loadMap;
D>loadMap = boost::bind(&Engine::LoadMap, this, _1);
D>...
D>void Engine::LoadMap(std::string mapName);
D>


D>При пошаговой трассировке видно, что после вызова loadMap("map_name");

D>функция LoadMap вызывается и даже с правильным значением параметра. Но после выхода из нее генерится исключение 0005, а стек-трейс находится вообще в левом участке кода, такое ощущение, что неправильно чистится стек после выхода, или, что более вероятно, не правильно передаются параметры в функцию, но где конкретно лежат грабли понять не могу

Явных проблем не видно. Я бы предположил, что в функции LoadMap есть buffer overflow. Чтобы узнать точно, покажите минимальный компилируемый пример, на котором воспроизводится проблема. Разумно будет послать этот пример в список рассылки boost-user (http://boost.org/more/mailing_lists.htm#users).

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