У меня возникает ошибка по следующему коду:
У меня есть абстрактный класс A
с методом
virtual bool Ok() const;
Теперь у меня есть следующий вектор
std::vector<A*> v;
заполнен несколькими указателями на существующие дочерние объекты.Я хочу собрать результаты метода Ok()
следующим образом:
std::vector<bool> results;
std::transform(v.begin(), v.end(), results.begin(), std::mem_fun(&A::Ok));
std::accumulate(results.begin(), results.end(), true, std::logical_and<bool>());
К сожалению, я всегда получаю ошибку segfault во второй строке, и я не понимаю, почему.Замена вызова преобразования стандартным циклом C ++ исправляет ошибку.Есть идеи?