#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <list>
struct Student_info
{
int grade() { return 0; }
};
class Grade_gen
{
public:
std::vector<Student_info> students;
bool has_passed(Student_info&);
std::list<Student_info>::iterator process_students(std::list<Student_info>&);
private:
};
using std::vector; using std::remove_if;
bool Grade_gen::has_passed(Student_info& student){
if (student.grade() > 60)
{
return true;
}
return false;
}
bool test(Student_info& student)
{
return true;
}
std::list<Student_info>::iterator Grade_gen::process_students(std::list<Student_info>& students)
{
remove_if(students.begin(), students.end(), [this](Student_info& si) { return this->has_passed(si); });
// this is just to test the scope of the functions in the class, they work.
std::list<Student_info>::iterator b = students.begin();
has_passed(*b);
return b;
}
int main()
{
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8bGlzdD4KCnN0cnVjdCBTdHVkZW50X2luZm8KewogICAgaW50IGdyYWRlKCkgeyByZXR1cm4gMDsgfQp9OwoKY2xhc3MgR3JhZGVfZ2VuCnsKcHVibGljOgogICAgc3RkOjp2ZWN0b3I8U3R1ZGVudF9pbmZvPiBzdHVkZW50czsKICAgIGJvb2wgaGFzX3Bhc3NlZChTdHVkZW50X2luZm8mKTsKICAgIHN0ZDo6bGlzdDxTdHVkZW50X2luZm8+OjppdGVyYXRvciBwcm9jZXNzX3N0dWRlbnRzKHN0ZDo6bGlzdDxTdHVkZW50X2luZm8+Jik7CnByaXZhdGU6Cgp9OwoKdXNpbmcgc3RkOjp2ZWN0b3I7IHVzaW5nIHN0ZDo6cmVtb3ZlX2lmOwoKYm9vbCBHcmFkZV9nZW46Omhhc19wYXNzZWQoU3R1ZGVudF9pbmZvJiBzdHVkZW50KXsKCiAgICBpZiAoc3R1ZGVudC5ncmFkZSgpID4gNjApCiAgICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwp9Cgpib29sIHRlc3QoU3R1ZGVudF9pbmZvJiBzdHVkZW50KQp7CiAgICByZXR1cm4gdHJ1ZTsKfQoKc3RkOjpsaXN0PFN0dWRlbnRfaW5mbz46Oml0ZXJhdG9yIEdyYWRlX2dlbjo6cHJvY2Vzc19zdHVkZW50cyhzdGQ6Omxpc3Q8U3R1ZGVudF9pbmZvPiYgc3R1ZGVudHMpCnsKICAgIHJlbW92ZV9pZihzdHVkZW50cy5iZWdpbigpLCBzdHVkZW50cy5lbmQoKSwgW3RoaXNdKFN0dWRlbnRfaW5mbyYgc2kpIHsgcmV0dXJuIHRoaXMtPmhhc19wYXNzZWQoc2kpOyB9KTsKCiAgICAvLyB0aGlzIGlzIGp1c3QgdG8gdGVzdCB0aGUgc2NvcGUgb2YgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgY2xhc3MsIHRoZXkgd29yay4KICAgIHN0ZDo6bGlzdDxTdHVkZW50X2luZm8+OjppdGVyYXRvciBiID0gc3R1ZGVudHMuYmVnaW4oKTsKICAgIGhhc19wYXNzZWQoKmIpOwogICAgcmV0dXJuIGI7Cn0KCmludCBtYWluKCkKewogICAgcmV0dXJuIDA7Cn0K