#include <string>
#include <list>
#include <iostream>
struct A {
    std::string name;
    A(const std::string& name) : name(name) {}
    bool operator< (const A& right) const { return name < right.name; }
};

int main()
{
    std::list<A> list = {A("c"), A("a"), A("b")};
    list.sort();

// ideone.com's compiler is rather old
//    for(auto a : list)
//        std::cout << a.name << '\n';
    for(auto i = list.begin(); i!=list.end(); ++i)
        std::cout << i->name << '\n';
}
