madf: (Default)
madf ([personal profile] madf) wrote2009-08-21 02:06 pm
Entry tags:

mem_fun & mem_fun_ref

В одному std::find_if поплутав, і замість mem_fun використав mem_fun_ref (а у мене контейнер вказівників). В результаті 30 хвилин ловив феєричні глюки, коли результат булевого виразу залежить від наявності гілки else в умовному операторі.
У мене є досвід пошуку таких багів, одразу запідозрив порушення пам'яті. А саме - неініціалізований об'єкт у якого викликається метод що містить той самий умовний вираз. Уявно відкотив стек викликів на 1 і одразу потрапив очима на find_if із mem_fun_ref. І як я таке міг написати? В якому стані?