#include <string>
#include <memory>
#include <vector>
#include <algorithm>
#include <iostream>
class Worker {
private:
std::string name;
public:
Worker(std::string n) { name = n; }
std::string getName() { return name; }
};
int main()
{
using workers_t = std::unique_ptr<Worker>;
std::vector<workers_t> Workers;
Workers.emplace_back(std::make_unique<Worker>(Worker("Paul")));
Workers.emplace_back(std::make_unique<Worker>(Worker("Anna")));
Workers.emplace_back(std::make_unique<Worker>(Worker("John")));
std::sort(std::begin(Workers), std::end(Workers), [](const workers_t& a, const workers_t& b) {
return a->getName() < b->getName();
});
for (auto const &worker : Workers)
std::cout << worker->getName() << std::endl;
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgV29ya2VyIHsKcHJpdmF0ZToKICAgIHN0ZDo6c3RyaW5nIG5hbWU7CnB1YmxpYzoKICAgIFdvcmtlcihzdGQ6OnN0cmluZyBuKSB7IG5hbWUgPSBuOyB9CiAgICBzdGQ6OnN0cmluZyBnZXROYW1lKCkgeyByZXR1cm4gbmFtZTsgfQp9OwoKaW50IG1haW4oKQp7CiAgICB1c2luZyB3b3JrZXJzX3QgPSBzdGQ6OnVuaXF1ZV9wdHI8V29ya2VyPjsKICAgIHN0ZDo6dmVjdG9yPHdvcmtlcnNfdD4gV29ya2VyczsKICAgIFdvcmtlcnMuZW1wbGFjZV9iYWNrKHN0ZDo6bWFrZV91bmlxdWU8V29ya2VyPihXb3JrZXIoIlBhdWwiKSkpOwogICAgV29ya2Vycy5lbXBsYWNlX2JhY2soc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXI+KFdvcmtlcigiQW5uYSIpKSk7CiAgICBXb3JrZXJzLmVtcGxhY2VfYmFjayhzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlcj4oV29ya2VyKCJKb2huIikpKTsKCiAgICBzdGQ6OnNvcnQoc3RkOjpiZWdpbihXb3JrZXJzKSwgc3RkOjplbmQoV29ya2VycyksIFtdKGNvbnN0IHdvcmtlcnNfdCYgYSwgY29uc3Qgd29ya2Vyc190JiBiKSB7CiAgICAgICAgcmV0dXJuIGEtPmdldE5hbWUoKSA8IGItPmdldE5hbWUoKTsKICAgIH0pOwoKICAgIGZvciAoYXV0byBjb25zdCAmd29ya2VyIDogV29ya2VycykKICAgICAgICBzdGQ6OmNvdXQgPDwgd29ya2VyLT5nZXROYW1lKCkgPDwgc3RkOjplbmRsOwoKICAgIHJldHVybiAwOwp9