# include <map>
# include <iostream>
struct node {
int test;
} temp;
int main() {
temp.test = 24;
auto comp = [](const node& n1, const node& n2) { return n1.test < n2.test; };
std::map<node, bool, decltype(comp)> mymap1(comp);
mymap1.insert(std::make_pair(temp, true));
mymap1.emplace(node({ 48 }), true);
mymap1[{ 12 }] = false;
for (auto const &n : mymap1)
std::cout << n.first.test << ": " << n.second << std::endl;
/*
// C++17 allows to use range-based for loops together with structured bindings.
for (auto const &[k, v] : mymap1)
std::cout << k.test << ": " << v << std::endl;
*/
return 0;
}
IyBpbmNsdWRlIDxtYXA+CiMgaW5jbHVkZSA8aW9zdHJlYW0+CgpzdHJ1Y3Qgbm9kZSB7CiAgICBpbnQgdGVzdDsKfSB0ZW1wOwoKaW50IG1haW4oKSB7CiAgICB0ZW1wLnRlc3QgPSAyNDsKCiAgICBhdXRvIGNvbXAgPSBbXShjb25zdCBub2RlJiBuMSwgY29uc3Qgbm9kZSYgbjIpIHsgcmV0dXJuIG4xLnRlc3QgPCBuMi50ZXN0OyB9OwogICAgc3RkOjptYXA8bm9kZSwgYm9vbCwgZGVjbHR5cGUoY29tcCk+IG15bWFwMShjb21wKTsKCiAgICBteW1hcDEuaW5zZXJ0KHN0ZDo6bWFrZV9wYWlyKHRlbXAsIHRydWUpKTsKICAgIG15bWFwMS5lbXBsYWNlKG5vZGUoeyA0OCB9KSwgdHJ1ZSk7CiAgICBteW1hcDFbeyAxMiB9XSA9IGZhbHNlOwoKICAgIGZvciAoYXV0byBjb25zdCAmbiA6IG15bWFwMSkKICAgICAgICBzdGQ6OmNvdXQgPDwgbi5maXJzdC50ZXN0IDw8ICI6ICIgPDwgbi5zZWNvbmQgPDwgc3RkOjplbmRsOwoKICAgIC8qCiAgICAvLyBDKysxNyBhbGxvd3MgdG8gdXNlIHJhbmdlLWJhc2VkIGZvciBsb29wcyB0b2dldGhlciB3aXRoIHN0cnVjdHVyZWQgYmluZGluZ3MuCiAgICBmb3IgKGF1dG8gY29uc3QgJltrLCB2XSA6IG15bWFwMSkKICAgICAgICBzdGQ6OmNvdXQgPDwgay50ZXN0IDw8ICI6ICIgPDwgdiA8PCBzdGQ6OmVuZGw7CiAgICAqLwoKCXJldHVybiAwOwp9